summaryrefslogtreecommitdiff
path: root/Userland/Libraries
diff options
context:
space:
mode:
authorItamar <itamar8910@gmail.com>2021-08-13 19:24:16 +0300
committerAndreas Kling <kling@serenityos.org>2021-08-14 12:40:55 +0200
commite57fdb63f8c1399db066f04a6ac16e13f8ad0f14 (patch)
tree61af37d3daccd9ca871881d95f9a6055652f0e06 /Userland/Libraries
parenta38c330c686d760d1a0d42a60c4012549dad55fb (diff)
downloadserenity-e57fdb63f8c1399db066f04a6ac16e13f8ad0f14.zip
Tests: Add regression tests for the LibCpp preprocessor
Similarly to the LibCpp parser regression tests, these tests run the preprocessor on the .cpp test files under Userland/LibCpp/Tests/preprocessor, and compare the output with existing .txt ground truth files.
Diffstat (limited to 'Userland/Libraries')
-rw-r--r--Userland/Libraries/LibCpp/Tests/preprocessor/macro1.cpp2
-rw-r--r--Userland/Libraries/LibCpp/Tests/preprocessor/macro1.txt4
-rw-r--r--Userland/Libraries/LibCpp/Tests/preprocessor/macro2.cpp3
-rw-r--r--Userland/Libraries/LibCpp/Tests/preprocessor/macro2.txt8
-rw-r--r--Userland/Libraries/LibCpp/Tests/preprocessor/macro3.cpp4
-rw-r--r--Userland/Libraries/LibCpp/Tests/preprocessor/macro3.txt11
-rw-r--r--Userland/Libraries/LibCpp/Tests/preprocessor/simple_define.cpp2
-rw-r--r--Userland/Libraries/LibCpp/Tests/preprocessor/simple_define.txt5
8 files changed, 39 insertions, 0 deletions
diff --git a/Userland/Libraries/LibCpp/Tests/preprocessor/macro1.cpp b/Userland/Libraries/LibCpp/Tests/preprocessor/macro1.cpp
new file mode 100644
index 0000000000..25a9b4a71b
--- /dev/null
+++ b/Userland/Libraries/LibCpp/Tests/preprocessor/macro1.cpp
@@ -0,0 +1,2 @@
+#define ADD(x,y) x+y
+ADD(2,5);
diff --git a/Userland/Libraries/LibCpp/Tests/preprocessor/macro1.txt b/Userland/Libraries/LibCpp/Tests/preprocessor/macro1.txt
new file mode 100644
index 0000000000..8a62b08adf
--- /dev/null
+++ b/Userland/Libraries/LibCpp/Tests/preprocessor/macro1.txt
@@ -0,0 +1,4 @@
+Integer 1:0-1:2 (2)
+Plus 1:0-1:2 (+)
+Integer 1:0-1:2 (5)
+Semicolon 1:8-1:8 (;)
diff --git a/Userland/Libraries/LibCpp/Tests/preprocessor/macro2.cpp b/Userland/Libraries/LibCpp/Tests/preprocessor/macro2.cpp
new file mode 100644
index 0000000000..cf6ef31b83
--- /dev/null
+++ b/Userland/Libraries/LibCpp/Tests/preprocessor/macro2.cpp
@@ -0,0 +1,3 @@
+#define M(x) String {x + "lo"}
+
+M("he" + "l")
diff --git a/Userland/Libraries/LibCpp/Tests/preprocessor/macro2.txt b/Userland/Libraries/LibCpp/Tests/preprocessor/macro2.txt
new file mode 100644
index 0000000000..e491aa6e5c
--- /dev/null
+++ b/Userland/Libraries/LibCpp/Tests/preprocessor/macro2.txt
@@ -0,0 +1,8 @@
+KnownType 2:0-2:0 (String)
+LeftCurly 2:0-2:0 ({)
+DoubleQuotedString 2:0-2:0 ("he")
+Plus 2:0-2:0 (+)
+DoubleQuotedString 2:0-2:0 ("l")
+Plus 2:0-2:0 (+)
+DoubleQuotedString 2:0-2:0 ("lo")
+RightCurly 2:0-2:0 (})
diff --git a/Userland/Libraries/LibCpp/Tests/preprocessor/macro3.cpp b/Userland/Libraries/LibCpp/Tests/preprocessor/macro3.cpp
new file mode 100644
index 0000000000..b02baa5d93
--- /dev/null
+++ b/Userland/Libraries/LibCpp/Tests/preprocessor/macro3.cpp
@@ -0,0 +1,4 @@
+#define M(x, y, z) x y = z;
+
+M(Vector, vec, ({1,2}))
+
diff --git a/Userland/Libraries/LibCpp/Tests/preprocessor/macro3.txt b/Userland/Libraries/LibCpp/Tests/preprocessor/macro3.txt
new file mode 100644
index 0000000000..1a54b5287b
--- /dev/null
+++ b/Userland/Libraries/LibCpp/Tests/preprocessor/macro3.txt
@@ -0,0 +1,11 @@
+KnownType 2:0-2:0 (Vector)
+Identifier 2:0-2:0 (vec)
+Equals 2:0-2:0 (=)
+LeftParen 2:0-2:0 (()
+LeftCurly 2:0-2:0 ({)
+Integer 2:0-2:0 (1)
+Comma 2:0-2:0 (,)
+Integer 2:0-2:0 (2)
+RightCurly 2:0-2:0 (})
+RightParen 2:0-2:0 ())
+Semicolon 2:0-2:0 (;)
diff --git a/Userland/Libraries/LibCpp/Tests/preprocessor/simple_define.cpp b/Userland/Libraries/LibCpp/Tests/preprocessor/simple_define.cpp
new file mode 100644
index 0000000000..c25f7cdef4
--- /dev/null
+++ b/Userland/Libraries/LibCpp/Tests/preprocessor/simple_define.cpp
@@ -0,0 +1,2 @@
+#define NUMBER 1337
+int x = NUMBER;
diff --git a/Userland/Libraries/LibCpp/Tests/preprocessor/simple_define.txt b/Userland/Libraries/LibCpp/Tests/preprocessor/simple_define.txt
new file mode 100644
index 0000000000..6842561545
--- /dev/null
+++ b/Userland/Libraries/LibCpp/Tests/preprocessor/simple_define.txt
@@ -0,0 +1,5 @@
+KnownType 1:0-1:2 (int)
+Identifier 1:4-1:4 (x)
+Equals 1:6-1:6 (=)
+Integer 1:8-1:13 (1337)
+Semicolon 1:14-1:14 (;)