authorgravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-03-31 14:18:09+02:00
committergravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-03-31 14:18:09+02:00
log26e56f2fab7c56829d51db1afb10acb0306a101f
tree730dd03a000eebc812589f998e954766f927e4c0
parent596f4b6002d3ed29adc8777b0417952cb79ad888

Each test now have it's own test name


1 files changed, 78 insertions(+), 44 deletions(-)

std/zig/parser.zig+78-44
...@@ -1557,7 +1557,7 @@ fn testCanonical(source: []const u8) !void {...@@ -1557,7 +1557,7 @@ fn testCanonical(source: []const u8) !void {
1557 }1557 }
1558}1558}
15591559
1560test "zig fmt" {1560test "zig fmt: get stdout or fail" {
1561 try testCanonical(1561 try testCanonical(
1562 \\const std = @import("std");1562 \\const std = @import("std");
1563 \\1563 \\
...@@ -1568,7 +1568,9 @@ test "zig fmt" {...@@ -1568,7 +1568,9 @@ test "zig fmt" {
1568 \\}1568 \\}
1569 \\1569 \\
1570 );1570 );
1571}
15711572
1573test "zig fmt: preserve spacing" {
1572 try testCanonical(1574 try testCanonical(
1573 \\const std = @import("std");1575 \\const std = @import("std");
1574 \\1576 \\
...@@ -1581,25 +1583,33 @@ test "zig fmt" {...@@ -1581,25 +1583,33 @@ test "zig fmt" {
1581 \\}1583 \\}
1582 \\1584 \\
1583 );1585 );
1586}
15841587
1588test "zig fmt: return types" {
1585 try testCanonical(1589 try testCanonical(
1586 \\pub fn main() !void {}1590 \\pub fn main() !void {}
1587 \\pub fn main() var {}1591 \\pub fn main() var {}
1588 \\pub fn main() i32 {}1592 \\pub fn main() i32 {}
1589 \\1593 \\
1590 );1594 );
1595}
15911596
1597test "zig fmt: imports" {
1592 try testCanonical(1598 try testCanonical(
1593 \\const std = @import("std");1599 \\const std = @import("std");
1594 \\const std = @import();1600 \\const std = @import();
1595 \\1601 \\
1596 );1602 );
1603}
15971604
1605test "zig fmt: extern function" {
1598 try testCanonical(1606 try testCanonical(
1599 \\extern fn puts(s: &const u8) c_int;1607 \\extern fn puts(s: &const u8) c_int;
1600 \\1608 \\
1601 );1609 );
1610}
16021611
1612test "zig fmt: global declarations" {
1603 try testCanonical(1613 try testCanonical(
1604 \\const a = b;1614 \\const a = b;
1605 \\pub const a = b;1615 \\pub const a = b;
...@@ -1611,66 +1621,71 @@ test "zig fmt" {...@@ -1611,66 +1621,71 @@ test "zig fmt" {
1611 \\pub var a: i32 = b;1621 \\pub var a: i32 = b;
1612 \\1622 \\
1613 );1623 );
1624}
16141625
1626test "zig fmt: extern declaration" {
1615 try testCanonical(1627 try testCanonical(
1616 \\extern var foo: c_int;1628 \\extern var foo: c_int;
1617 \\1629 \\
1618 );1630 );
1631}
16191632
1620 try testCanonical(1633test "zig fmt: alignment" {
1634 try testCanonical(
1621 \\var foo: c_int align(1);1635 \\var foo: c_int align(1);
1622 \\1636 \\
1623 );1637 );
1638}
16241639
1640test "zig fmt: C main" {
1625 try testCanonical(1641 try testCanonical(
1626 \\fn main(argc: c_int, argv: &&u8) c_int {1642 \\fn main(argc: c_int, argv: &&u8) c_int {
1627 \\ const a = b;1643 \\ const a = b;
1628 \\}1644 \\}
1629 \\1645 \\
1630 );1646 );
1647}
16311648
1649test "zig fmt: return" {
1632 try testCanonical(1650 try testCanonical(
1633 \\fn foo(argc: c_int, argv: &&u8) c_int {1651 \\fn foo(argc: c_int, argv: &&u8) c_int {
1634 \\ return 0;1652 \\ return 0;
1635 \\}1653 \\}
1636 \\1654 \\
1637 );1655 );
1656}
16381657
1658test "zig fmt: pointer attributes" {
1639 try testCanonical(1659 try testCanonical(
1640 \\extern fn f1(s: &align(&u8) u8) c_int;1660 \\extern fn f1(s: &align(&u8) u8) c_int;
1661 \\extern fn f2(s: &&align(1) &const &volatile u8) c_int;
1662 \\extern fn f3(s: &align(1) const &align(1) volatile &const volatile u8) c_int;
1663 \\extern fn f4(s: &align(1) const volatile u8) c_int;
1641 \\1664 \\
1642 );1665 );
1666}
16431667
1668test "zig fmt: slice attributes" {
1644 try testCanonical(1669 try testCanonical(
1645 \\extern fn f1(s: &&align(1) &const &volatile u8) c_int;1670 \\extern fn f1(s: &align(&u8) u8) c_int;
1646 \\extern fn f2(s: &align(1) const &align(1) volatile &const volatile u8) c_int;1671 \\extern fn f2(s: &&align(1) &const &volatile u8) c_int;
1647 \\extern fn f3(s: &align(1) const volatile u8) c_int;1672 \\extern fn f3(s: &align(1) const &align(1) volatile &const volatile u8) c_int;
1648 \\1673 \\extern fn f4(s: &align(1) const volatile u8) c_int;
1649 );
1650
1651 try testCanonical(
1652 \\extern fn f1(s: [][]align(1) []const []volatile u8) c_int;
1653 \\extern fn f2(s: []align(1) const []align(1) volatile []const volatile u8) c_int;
1654 \\extern fn f3(s: []align(1) const volatile u8) c_int;
1655 \\
1656 );
1657
1658 try testCanonical(
1659 \\fn f1(a: bool, b: bool) bool {
1660 \\ a != b;
1661 \\ return a == b;
1662 \\}
1663 \\1674 \\
1664 );1675 );
1676}
16651677
1666 try testCanonical(1678test "zig fmt: test declaration" {
1679 try testCanonical(
1667 \\test "test name" {1680 \\test "test name" {
1668 \\ const a = 1;1681 \\ const a = 1;
1669 \\ var b = 1;1682 \\ var b = 1;
1670 \\}1683 \\}
1671 \\1684 \\
1672 );1685 );
1686}
16731687
1688test "zig fmt: infix operators" {
1674 try testCanonical(1689 try testCanonical(
1675 \\test "infix operators" {1690 \\test "infix operators" {
1676 \\ var i = undefined;1691 \\ var i = undefined;
...@@ -1720,14 +1735,18 @@ test "zig fmt" {...@@ -1720,14 +1735,18 @@ test "zig fmt" {
1720 \\}1735 \\}
1721 \\1736 \\
1722 );1737 );
1738}
17231739
1740test "zig fmt: prefix operators" {
1724 try testCanonical(1741 try testCanonical(
1725 \\test "prefix operators" {1742 \\test "prefix operators" {
1726 \\ try return --%~??!*&0;1743 \\ try return --%~??!*&0;
1727 \\}1744 \\}
1728 \\1745 \\
1729 );1746 );
1747}
17301748
1749test "zig fmt: call expression" {
1731 try testCanonical(1750 try testCanonical(
1732 \\test "test calls" {1751 \\test "test calls" {
1733 \\ a();1752 \\ a();
...@@ -1737,27 +1756,9 @@ test "zig fmt" {...@@ -1737,27 +1756,9 @@ test "zig fmt" {
1737 \\}1756 \\}
1738 \\1757 \\
1739 );1758 );
1759}
17401760
1741 try testCanonical(1761test "zig fmt: values" {
1742 \\test "test index" {
1743 \\ a[0];
1744 \\ a[0 + 5];
1745 \\ a[0..];
1746 \\ a[0..5];
1747 \\}
1748 \\
1749 );
1750
1751 try testCanonical(
1752 \\test "test array" {
1753 \\ const a: [2]u8 = [2]u8{ 1, 2 };
1754 \\ const a: [2]u8 = []u8{ 1, 2 };
1755 \\ const a: [0]u8 = []u8{};
1756 \\}
1757 \\
1758 );
1759
1760// PrimaryExpression = Integer | Float | String | CharLiteral | KeywordLiteral | GroupedExpression | BlockExpression(BlockOrExpression) | Symbol | ("@" Symbol FnCallExpression) | ArrayType | FnProto | AsmExpression | ContainerDecl | ("continue" option(":" Symbol)) | ErrorSetDecl | PromiseType
1761 try testCanonical(1762 try testCanonical(
1762 \\test "values" {1763 \\test "values" {
1763 \\ 1;1764 \\ 1;
...@@ -1780,9 +1781,34 @@ test "zig fmt" {...@@ -1780,9 +1781,34 @@ test "zig fmt" {
1780 \\}1781 \\}
1781 \\1782 \\
1782 );1783 );
1784}
17831785
1786test "zig fmt: indexing" {
1784 try testCanonical(1787 try testCanonical(
1785 \\test "precendence" {1788 \\test "test index" {
1789 \\ a[0];
1790 \\ a[0 + 5];
1791 \\ a[0..];
1792 \\ a[0..5];
1793 \\}
1794 \\
1795 );
1796}
1797
1798test "zig fmt: arrays" {
1799 try testCanonical(
1800 \\test "test array" {
1801 \\ const a: [2]u8 = [2]u8{ 1, 2 };
1802 \\ const a: [2]u8 = []u8{ 1, 2 };
1803 \\ const a: [0]u8 = []u8{};
1804 \\}
1805 \\
1806 );
1807}
1808
1809test "zig fmt: precedence" {
1810 try testCanonical(
1811 \\test "precedence" {
1786 \\ a!b();1812 \\ a!b();
1787 \\ (a!b)();1813 \\ (a!b)();
1788 \\ !a!b;1814 \\ !a!b;
...@@ -1811,7 +1837,9 @@ test "zig fmt" {...@@ -1811,7 +1837,9 @@ test "zig fmt" {
1811 \\}1837 \\}
1812 \\1838 \\
1813 );1839 );
1840}
18141841
1842test "zig fmt: struct declaration" {
1815 try testCanonical(1843 try testCanonical(
1816 \\const S = struct {1844 \\const S = struct {
1817 \\ const Self = this;1845 \\ const Self = this;
...@@ -1839,8 +1867,10 @@ test "zig fmt" {...@@ -1839,8 +1867,10 @@ test "zig fmt" {
1839 \\};1867 \\};
1840 \\1868 \\
1841 );1869 );
1870}
18421871
1843 try testCanonical(1872test "zig fmt: enum declaration" {
1873 try testCanonical(
1844 \\const E = enum {1874 \\const E = enum {
1845 \\ Ok,1875 \\ Ok,
1846 \\ SomethingElse = 0,1876 \\ SomethingElse = 0,
...@@ -1865,7 +1895,9 @@ test "zig fmt" {...@@ -1865,7 +1895,9 @@ test "zig fmt" {
1865 \\};1895 \\};
1866 \\1896 \\
1867 );1897 );
1898}
18681899
1900test "zig fmt: container initializers" {
1869 try testCanonical(1901 try testCanonical(
1870 \\const a1 = []u8{ };1902 \\const a1 = []u8{ };
1871 \\const a2 = []u8{ 1, 2, 3, 4 };1903 \\const a2 = []u8{ 1, 2, 3, 4 };
...@@ -1873,9 +1905,11 @@ test "zig fmt" {...@@ -1873,9 +1905,11 @@ test "zig fmt" {
1873 \\const s2 = S{ .a = 1, .b = 2, };1905 \\const s2 = S{ .a = 1, .b = 2, };
1874 \\1906 \\
1875 );1907 );
1908}
18761909
1910test "zig fmt: zig fmt" {
1877 try testCanonical(@embedFile("ast.zig"));1911 try testCanonical(@embedFile("ast.zig"));
1878 try testCanonical(@embedFile("index.zig"));1912 try testCanonical(@embedFile("index.zig"));
1879 try testCanonical(@embedFile("parser.zig"));1913 try testCanonical(@embedFile("parser.zig"));
1880 try testCanonical(@embedFile("tokenizer.zig"));1914 try testCanonical(@embedFile("tokenizer.zig"));
1881}1915}
\ No newline at end of file