]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/compiler/cfg/dataflow-analysis/dataflow-analysis-tests.factor
compiler.cfg.*: more unit tests
[factor.git] / basis / compiler / cfg / dataflow-analysis / dataflow-analysis-tests.factor
diff --git a/basis/compiler/cfg/dataflow-analysis/dataflow-analysis-tests.factor b/basis/compiler/cfg/dataflow-analysis/dataflow-analysis-tests.factor
new file mode 100644 (file)
index 0000000..02181fb
--- /dev/null
@@ -0,0 +1,30 @@
+USING: accessors assocs compiler.cfg.dataflow-analysis
+compiler.cfg.dataflow-analysis.private compiler.cfg.rpo compiler.cfg.utilities
+kernel tools.test ;
+IN: compiler.cfg.dataflow-analysis.tests
+
+! run-dataflow-analysis
+TUPLE: im-a-dfa test ;
+
+M: im-a-dfa block-order ( cfg dfa -- bbs )
+    drop post-order ;
+
+M: im-a-dfa ignore-block? ( cfg bb -- ? )
+    2drop f ;
+
+M: im-a-dfa predecessors ( bb dfa -- seq )
+    drop predecessors>> ;
+
+M: im-a-dfa successors ( bb dfa -- seq )
+    drop successors>> ;
+
+M: im-a-dfa join-sets ( sets bb dfa -- set )
+    2drop ;
+
+M: im-a-dfa transfer-set ( in-set bb dfa -- out-set )
+    2drop ;
+
+{ { V{ } } { V{ } } } [
+    { } 0 insns>block block>cfg 10 im-a-dfa boa run-dataflow-analysis
+    [ values ] bi@
+] unit-test