Przeglądaj źródła

ncd: tests: add depend.ncd

ambrop7 13 lat temu
rodzic
commit
23c677ed65
1 zmienionych plików z 64 dodań i 0 usunięć
  1. 64 0
      ncd/tests/depend.ncd

+ 64 - 0
ncd/tests/depend.ncd

@@ -0,0 +1,64 @@
+process main {
+    var("hello") x;
+    provide("A");
+    depend("A") d;
+    val_equal(d.x, "hello") a;
+    assert(a);
+    d.x->set("world");
+    val_equal(d.x, "world") a;
+    assert(a);
+
+    var("hello") x;
+    provide("B");
+    val_equal(x, "world") a;
+    assert(a);
+
+    var("hello") x;
+    provide("C");
+    val_equal(x, "hello") a;
+    assert(a);
+    depend("C_done");
+    val_equal(x, "world") a;
+    assert(a);
+
+    var("hello") x;
+    blocker() blk;
+    provide("D");
+    val_equal(x, "hello") a;
+    assert(a);
+    blk->up();
+    val_equal(x, "0") a;
+    assert(a);
+    blk->down();
+    blk->up();
+    val_equal(x, "1") a;
+    assert(a);
+
+    exit("0");
+}
+
+process proc1 {
+    depend("B") dep;
+    dep.x->set("world");
+}
+
+process proc2 {
+    depend("C") dep;
+    sleep("0", "0");
+    dep.x->set("world");
+    provide("C_done");
+}
+
+process proc3 {
+    depend("D") dep;
+    dep.blk->use();
+    provide("E");
+}
+
+process proc4 {
+    var("0") i;
+    depend("E") dep;
+    dep.dep.x->set(i);
+    num_add(i, "1") j;
+    i->set(j);
+}