Website Summary Files Commits Branches @commit @diff @stats
path: root / JSImpl / test
diff options
context:
space:
mode:
Commit72d9bbcc3154142af79fb686d9dc7e4d1fa1badb (patch)
Author
 dtrendafilov <trendafilov.dn@gmail.com>
2018-11-29 09:13:12 +0200
Committer
 GitHub <noreply@github.com>
2018-11-29 09:13:12 +0200
Files3cea4377cba9370f3f2248557f82831d617d89d1 /JSImpl/test
IPL-72d9bbcc3154142af79fb686d9dc7e4d1fa1badb.tar
IPL-72d9bbcc3154142af79fb686d9dc7e4d1fa1badb.tar.gz
IPL-72d9bbcc3154142af79fb686d9dc7e4d1fa1badb.zip
Parentcdfd42d72030a031e5c5d810fcd53441902b5cff (diff)
Feature/strings (#75)
* The assembler supports string opcode * disabled the string test until implmented * strings can be printed
1 files changed, 44 insertions, 0 deletions
-rw-r--r--JSImpl/test/sprtTests.cpp44
diff --git a/JSImpl/test/sprtTests.cpp b/JSImpl/test/sprtTests.cpp
index a7b9e3b..25b7665 100644
--- a/JSImpl/test/sprtTests.cpp
+++ b/JSImpl/test/sprtTests.cpp
@@ -379,3 +379,47 @@ TEST_F(SPASMTest, GCD)
CompileAndRun(program);
ASSERT_EQ(Output.str(), "3");
}
+
+TEST_F(SPASMTest, StringS)
+{
+ const char* program =
+ "push 1" "\n"
+ "string 1 'the answer is 42'" "\n"
+ "print 1" "\n"
+ ;
+ CompileAndRun(program);
+ ASSERT_EQ(Output.str(), "the answer is 42");
+}
+
+TEST_F(SPASMTest, StringD)
+{
+ const char* program =
+ "push 1" "\n"
+ "string 1 'the answer is 42'" "\n"
+ "print 1" "\n"
+ ;
+ CompileAndRun(program);
+ ASSERT_EQ(Output.str(), "the answer is 42");
+}
+
+TEST_F(SPASMTest, StringEscapeS)
+{
+ const char* program =
+ "push 1" "\n"
+ "string 1 'the answer\\' is 42'" "\n"
+ "print 1" "\n"
+ ;
+ CompileAndRun(program);
+ ASSERT_EQ(Output.str(), "the answer\\' is 42");
+}
+
+TEST_F(SPASMTest, StringEscapeD)
+{
+ const char* program =
+ "push 1" "\n"
+ "string 1 \"the answer\\\" is 42\"" "\n"
+ "print 1" "\n"
+ ;
+ CompileAndRun(program);
+ ASSERT_EQ(Output.str(), "the answer\\\" is 42");
+}