about summary refs log blame commit diff stats
path: root/cpp/002main.test.cc
blob: 72dbe41f080d0be02803a7cc26c345ba274ce7a4 (plain) (tree)
1
2
3
4
5
6
7
8
           


                                            
                                                                                                                          

 
                 


                           

                                                        

 
            


                                                       
                                                                                                                                                            

 
             
                           




                                            
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);
}