about summary refs log tree commit diff stats
path: root/cpp/002main.test.cc
blob: 72dbe41f080d0be02803a7cc26c345ba274ce7a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
TEST(parse)
  compile("recipe main [\n"
          "  1:integer <- copy 23:literal\n"
          "]\n");
  CHECK_TRACE_CONTENTS("parse", "instruction: 1  ingredient: {name: \"23\", type: 0}  product: {name: \"1\", type: 1}");
}

TEST(parse_label)
  compile("recipe main [\n"
          "  foo:\n"
          "]\n");
  CHECK_TRACE_CONTENTS("parse", "label: foo");
  CHECK_TRACE_DOESNT_CONTAIN("parse", "instruction: 1");
}

TEST(parse2)
  compile("recipe main [\n"
          "  1:integer, 2:integer <- copy 23:literal\n"
          "]\n");
  CHECK_TRACE_CONTENTS("parse", "instruction: 1  ingredient: {name: \"23\", type: 0}  product: {name: \"1\", type: 1}  product: {name: \"2\", type: 1}");
}

TEST(literal)
  compile("recipe main [\n"
          "  1:integer <- copy 23:literal\n"
          "]\n");
  run("main");
  CHECK_EQ(Memory[1], 23);
}