From 9d567120ed872721f1a25596678292da0232b657 Mon Sep 17 00:00:00 2001 From: rexim Date: Fri, 21 Sep 2018 23:11:12 +0700 Subject: [PATCH] Don't test scope's internals. Test scope's behaviour. --- test/scope_suite.h | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/test/scope_suite.h b/test/scope_suite.h index 79dc8430..95c3ce05 100644 --- a/test/scope_suite.h +++ b/test/scope_suite.h @@ -13,25 +13,32 @@ TEST(set_scope_value_test) struct Expr x = SYMBOL(gc, "x"); struct Expr y = SYMBOL(gc, "y"); - struct Scope initial_scope = { - .expr = list(gc, 2, - list(gc, 2, - CONS(gc, x, STRING(gc, "hello")), - CONS(gc, y, STRING(gc, "world"))), - NIL(gc)) + struct Scope scope = { + .expr = CONS(gc, NIL(gc), NIL(gc)) }; - struct Expr expected_scope_expr = - list(gc, 2, - list(gc, 2, - CONS(gc, x, STRING(gc, "hello")), - CONS(gc, y, STRING(gc, "world"))), - list(gc, 1, - CONS(gc, z, STRING(gc, "foo")))); + push_scope_frame(gc, &scope, + list(gc, 2, x, y), + list(gc, 2, STRING(gc, "hello"), STRING(gc, "world"))); - set_scope_value(gc, &initial_scope, z, STRING(gc, "foo")); + set_scope_value(gc, &scope, z, STRING(gc, "foo")); + + ASSERT_TRUE(equal(CONS(gc, x, STRING(gc, "hello")), get_scope_value(&scope, x)), + "Unexpected value of `x`"); + ASSERT_TRUE(equal(CONS(gc, y, STRING(gc, "world")), get_scope_value(&scope, y)), + "Unexpected value of `y`"); + ASSERT_TRUE(equal(CONS(gc, z, STRING(gc, "foo")), get_scope_value(&scope, z)), + "Unexpected value of `z`"); + + pop_scope_frame(gc, &scope); + + ASSERT_TRUE(equal(NIL(gc), get_scope_value(&scope, x)), + "Unexpected value of `x`"); + ASSERT_TRUE(equal(NIL(gc), get_scope_value(&scope, y)), + "Unexpected value of `y`"); + ASSERT_TRUE(equal(CONS(gc, z, STRING(gc, "foo")), get_scope_value(&scope, z)), + "Unexpected value of `z`"); - ASSERT_TRUE(equal(expected_scope_expr, initial_scope.expr), "Unexpected scope"); destroy_gc(gc); -- 2.44.0