diff options
author | Mu Qiao <qiaomuf@gentoo.org> | 2011-04-26 16:22:20 +0800 |
---|---|---|
committer | Mu Qiao <qiaomuf@gentoo.org> | 2011-04-28 10:52:42 +0800 |
commit | e86cc25a58e07c717606dbfd95d2497a9dd6f638 (patch) | |
tree | afe9d7b8b8a0d8c2d751d9093ed8cc72acd3b389 /test | |
parent | Builtin: add interpreter object as a protected member (diff) | |
download | libbash-e86cc25a58e07c717606dbfd95d2497a9dd6f638.tar.gz libbash-e86cc25a58e07c717606dbfd95d2497a9dd6f638.tar.bz2 libbash-e86cc25a58e07c717606dbfd95d2497a9dd6f638.zip |
Core: use reference/pointer for the interpreter object
We don't share interpreter object and it's safer to use reference
rather than shared_ptr. Raw pointer is used in the generated C
source code.
Diffstat (limited to 'test')
-rw-r--r-- | test/walker_test.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/test/walker_test.cpp b/test/walker_test.cpp index 6f13176..c3aacbb 100644 --- a/test/walker_test.cpp +++ b/test/walker_test.cpp @@ -27,17 +27,17 @@ #include <gtest/gtest.h> #include "core/interpreter.h" -#include "core/parser_builder.h" -#include "core/walker_builder.h" +#include "core/bash_ast.h" static void check_string_assignment(const char* script, const std::string& name, const char* exp_value) { + interpreter walker; std::istringstream input(script); - parser_builder pbuilder(input); - walker_builder wbuilder = pbuilder.create_walker_builder(); - EXPECT_STREQ(exp_value, wbuilder.walker->resolve<std::string>(name).c_str()); + bash_ast ast(input); + ast.interpret_with(walker); + EXPECT_STREQ(exp_value, walker.resolve<std::string>(name).c_str()); } #define TEST_STRING_ASSIGNMENT(name, script, var_name, exp_value)\ @@ -62,13 +62,15 @@ TEST_STRING_ASSIGNMENT(str_assignment6, TEST(array_index, out_of_bound) { + interpreter walker; + std::string script = "a[-1]=\"1\""; std::istringstream input(script); - parser_builder pbuilder(input); - EXPECT_THROW(pbuilder.create_walker_builder(), interpreter_exception); + bash_ast ast(input); + EXPECT_THROW(ast.interpret_with(walker), interpreter_exception); std::string script2 = "a=(1 2 [-5]=1)"; std::istringstream input2(script2); - parser_builder pbuilder2(input2); - EXPECT_THROW(pbuilder2.create_walker_builder(), interpreter_exception); + bash_ast ast2(input2); + EXPECT_THROW(ast2.interpret_with(walker), interpreter_exception); } |