aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMu Qiao <qiaomuf@gentoo.org>2011-04-26 16:22:20 +0800
committerMu Qiao <qiaomuf@gentoo.org>2011-04-28 10:52:42 +0800
commite86cc25a58e07c717606dbfd95d2497a9dd6f638 (patch)
treeafe9d7b8b8a0d8c2d751d9093ed8cc72acd3b389 /test
parentBuiltin: add interpreter object as a protected member (diff)
downloadlibbash-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.cpp20
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);
}