diff options
Diffstat (limited to 'ocamlbuild/test')
78 files changed, 1383 insertions, 0 deletions
diff --git a/ocamlbuild/test/good-output b/ocamlbuild/test/good-output new file mode 100644 index 000000000..5a9df660a --- /dev/null +++ b/ocamlbuild/test/good-output @@ -0,0 +1,1022 @@ + _____ _ ____ +|_ _|__ ___| |_|___ \ + | |/ _ \/ __| __| __) | + | | __/\__ \ |_ / __/ + |_|\___||___/\__|_____| + ++ CMDOPTS=-- -help ++ BUILD=../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display ++ BUILD1=../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help ++ BUILD2=../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help ++ rm -rf _build ++ cp vivi1.ml vivi.ml ++ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help +ocamldep.opt -modules toto.ml > toto.ml.depends +ocamldep.opt -modules tutu.mli > tutu.mli.depends +ocamldep.opt -modules titi.ml > titi.ml.depends +ocamldep.opt -modules tata.mli > tata.mli.depends +ocamlc.opt -c -o tutu.cmi tutu.mli +ocamlc.opt -c -o titi.cmo titi.ml +ocamlc.opt -c -o tata.cmi tata.mli +ocamlc.opt -c -o toto.cmo toto.ml +ocamldep.opt -modules tutu.ml > tutu.ml.depends +ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends +ocamldep.opt -modules tyty.mli > tyty.mli.depends +ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml +ocamlc.opt -c -o tyty.cmi tyty.mli +ocamldep.opt -modules tata.ml > tata.ml.depends +ocamlc.opt -c -o tutu.cmo tutu.ml +ocamlc.opt -c -o tata.cmo tata.ml +ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte +ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml +ocamlopt.opt -c -o tutu.cmx tutu.ml +ocamlopt.opt -c -o titi.cmx titi.ml +ocamlopt.opt -c -o tata.cmx tata.ml +ocamlopt.opt -c -o toto.cmx toto.ml +ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native +Warning: Using -- only run the last target +toto.native: _build/toto.native: Hello world!!! +Tutu.tutu => 1 +Tata.tata => "TATA2" ++ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help +[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends +[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends +[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli +[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends +[cache hit] ocamlc.opt -c -o titi.cmo titi.ml +[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends +[cache hit] ocamlc.opt -c -o tata.cmi tata.mli +[cache hit] ocamlc.opt -c -o toto.cmo toto.ml +[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends +[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends +[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml +[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends +[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli +[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml +[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends +[cache hit] ocamlc.opt -c -o tata.cmo tata.ml +[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte +[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml +[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml +[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml +[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml +[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml +[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native +Warning: Using -- only run the last target +toto.native: _build/toto.native: Hello world!!! +Tutu.tutu => 1 +Tata.tata => "TATA2" ++ cp vivi2.ml vivi.ml ++ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help +ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends +ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml +ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte +ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml +ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native +Warning: Using -- only run the last target +toto.native: _build/toto.native: Hello world!!! +Tutu.tutu => 1 +Tata.tata => "TATA2" ++ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help +[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends +[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends +[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli +[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends +[cache hit] ocamlc.opt -c -o titi.cmo titi.ml +[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends +[cache hit] ocamlc.opt -c -o tata.cmi tata.mli +[cache hit] ocamlc.opt -c -o toto.cmo toto.ml +[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends +[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends +[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml +[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends +[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli +[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml +[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends +[cache hit] ocamlc.opt -c -o tata.cmo tata.ml +[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte +[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml +[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml +[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml +[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml +[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml +[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native +Warning: Using -- only run the last target +toto.native: _build/toto.native: Hello world!!! +Tutu.tutu => 1 +Tata.tata => "TATA2" ++ cp vivi3.ml vivi.ml ++ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help +ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends +ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml +ocamlc.opt -c -o tutu.cmo tutu.ml +ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte +ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml +ocamlopt.opt -c -o tutu.cmx tutu.ml +ocamlopt.opt -c -o toto.cmx toto.ml +ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native +Warning: Using -- only run the last target +toto.native: _build/toto.native: Hello world!!! +Tutu.tutu => 2 +Tata.tata => "TATA2" ++ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help +[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends +[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends +[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli +[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends +[cache hit] ocamlc.opt -c -o titi.cmo titi.ml +[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends +[cache hit] ocamlc.opt -c -o tata.cmi tata.mli +[cache hit] ocamlc.opt -c -o toto.cmo toto.ml +[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends +[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends +[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml +[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends +[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli +[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml +[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends +[cache hit] ocamlc.opt -c -o tata.cmo tata.ml +[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte +[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml +[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml +[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml +[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml +[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml +[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native +Warning: Using -- only run the last target +toto.native: _build/toto.native: Hello world!!! +Tutu.tutu => 2 +Tata.tata => "TATA2" + _____ _ _____ +|_ _|__ ___| |_|___ / + | |/ _ \/ __| __| |_ \ + | | __/\__ \ |_ ___) | + |_|\___||___/\__|____/ + ++ CMDOTPS= ++ BUILD=../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display ++ BUILD1=../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display ++ BUILD2=../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt ++ rm -rf _build ++ ../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display +ocamldep.opt -modules a.ml > a.ml.depends +ocamldep.opt -modules a.mli > a.mli.depends +ocamlc.opt -c -o a.cmi a.mli +ocamldep.opt -modules b.mli > b.mli.depends +ocamlc.opt -c -o b.cmi b.mli +ocamlc.opt -c -o a.cmo a.ml +ocamldep.opt -modules b.ml > b.ml.depends +ocamldep.opt -modules c.mli > c.mli.depends +ocamlc.opt -c -o c.cmi c.mli +ocamlc.opt -c -o b.cmo b.ml +ocamldep.opt -modules c.ml > c.ml.depends +ocamldep.opt -modules d.mli > d.mli.depends +ocamlc.opt -c -o d.cmi d.mli +ocamlc.opt -c -o c.cmo c.ml +ocamldep.opt -modules d.ml > d.ml.depends +ocamldep.opt -modules e.mli > e.mli.depends +ocamlc.opt -c -o e.cmi e.mli +ocamlc.opt -c -o d.cmo d.ml +ocamldep.opt -modules e.ml > e.ml.depends +ocamldep.opt -modules f.mli > f.mli.depends +ocamlc.opt -c -o f.cmi f.mli +ocamlc.opt -c -o e.cmo e.ml +ocamldep.opt -modules f.ml > f.ml.depends +ocamlc.opt -c -o f.cmo f.ml +ocamlc.opt unix.cma f.cmo e.cmo d.cmo c.cmo b.cmo a.cmo -o a.byte +ocamlopt.opt -c -o f.cmx f.ml +ocamlopt.opt -c -o e.cmx e.ml +ocamlopt.opt -c -o d.cmx d.ml +ocamlopt.opt -c -o c.cmx c.ml +ocamlopt.opt -c -o b.cmx b.ml +ocamlopt.opt -c -o a.cmx a.ml +ocamlopt.opt unix.cmxa f.cmx e.cmx d.cmx c.cmx b.cmx a.cmx -o a.native +ocamldoc.opt -dump a.odoc a.mli +ocamldoc.opt -dump b.odoc b.mli +ocamldoc.opt -dump c.odoc c.mli +ocamldoc.opt -dump d.odoc d.mli +ocamldoc.opt -dump e.odoc e.mli +ocamldoc.opt -dump f.odoc f.mli +rm -rf proj.docdir +mkdir -p proj.docdir +ocamldoc.opt -load a.odoc -load b.odoc -load c.odoc -load d.odoc -load e.odoc -load f.odoc -html -d proj.docdir ++ ../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules a.ml > a.ml.depends +[cache hit] ocamldep.opt -modules a.mli > a.mli.depends +[cache hit] ocamlc.opt -c -o a.cmi a.mli +[cache hit] ocamldep.opt -modules b.mli > b.mli.depends +[cache hit] ocamlc.opt -c -o b.cmi b.mli +[cache hit] ocamlc.opt -c -o a.cmo a.ml +[cache hit] ocamldep.opt -modules b.ml > b.ml.depends +[cache hit] ocamldep.opt -modules c.mli > c.mli.depends +[cache hit] ocamlc.opt -c -o c.cmi c.mli +[cache hit] ocamlc.opt -c -o b.cmo b.ml +[cache hit] ocamldep.opt -modules c.ml > c.ml.depends +[cache hit] ocamldep.opt -modules d.mli > d.mli.depends +[cache hit] ocamlc.opt -c -o d.cmi d.mli +[cache hit] ocamlc.opt -c -o c.cmo c.ml +[cache hit] ocamldep.opt -modules d.ml > d.ml.depends +[cache hit] ocamldep.opt -modules e.mli > e.mli.depends +[cache hit] ocamlc.opt -c -o e.cmi e.mli +[cache hit] ocamlc.opt -c -o d.cmo d.ml +[cache hit] ocamldep.opt -modules e.ml > e.ml.depends +[cache hit] ocamldep.opt -modules f.mli > f.mli.depends +[cache hit] ocamlc.opt -c -o f.cmi f.mli +[cache hit] ocamlc.opt -c -o e.cmo e.ml +[cache hit] ocamldep.opt -modules f.ml > f.ml.depends +[cache hit] ocamlc.opt -c -o f.cmo f.ml +[cache hit] ocamlc.opt unix.cma f.cmo e.cmo d.cmo c.cmo b.cmo a.cmo -o a.byte +[cache hit] ocamlopt.opt -c -o f.cmx f.ml +[cache hit] ocamlopt.opt -c -o e.cmx e.ml +[cache hit] ocamlopt.opt -c -o d.cmx d.ml +[cache hit] ocamlopt.opt -c -o c.cmx c.ml +[cache hit] ocamlopt.opt -c -o b.cmx b.ml +[cache hit] ocamlopt.opt -c -o a.cmx a.ml +[cache hit] ocamlopt.opt unix.cmxa f.cmx e.cmx d.cmx c.cmx b.cmx a.cmx -o a.native +[cache hit] ocamldoc.opt -dump a.odoc a.mli +[cache hit] ocamldoc.opt -dump b.odoc b.mli +[cache hit] ocamldoc.opt -dump c.odoc c.mli +[cache hit] ocamldoc.opt -dump d.odoc d.mli +[cache hit] ocamldoc.opt -dump e.odoc e.mli +[cache hit] ocamldoc.opt -dump f.odoc f.mli +[cache hit] rm -rf proj.docdir +[cache hit] mkdir -p proj.docdir +[cache hit] ocamldoc.opt -load a.odoc -load b.odoc -load c.odoc -load d.odoc -load e.odoc -load f.odoc -html -d proj.docdir + _____ _ _ _ +|_ _|__ ___| |_| || | + | |/ _ \/ __| __| || |_ + | | __/\__ \ |_|__ _| + |_|\___||___/\__| |_| + ++ CMDOTPS= ++ BUILD=../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display ++ BUILD1=../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display ++ BUILD2=../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt ++ rm -rf _build ++ ../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display +ocamldep.opt -modules a/aa.ml > a/aa.ml.depends +ocamldep.opt -modules a/aa.mli > a/aa.mli.depends +ocamlc.opt -c -I a -I b -o a/aa.cmi a/aa.mli +ocamldep.opt -modules b/bb.ml > b/bb.ml.depends +ocamlc.opt -c -I b -I a -o b/bb.cmo b/bb.ml +ocamlc.opt -c -I a -I b -o a/aa.cmo a/aa.ml +ocamlc.opt str.cma b/bb.cmo a/aa.cmo -o a/aa.byte +ocamlopt.opt -c -I b -I a -o b/bb.cmx b/bb.ml +ocamlopt.opt -c -I a -I b -o a/aa.cmx a/aa.ml +ocamlopt.opt str.cmxa b/bb.cmx a/aa.cmx -o a/aa.native ++ ../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules a/aa.ml > a/aa.ml.depends +[cache hit] ocamldep.opt -modules a/aa.mli > a/aa.mli.depends +[cache hit] ocamlc.opt -c -I a -I b -o a/aa.cmi a/aa.mli +[cache hit] ocamldep.opt -modules b/bb.ml > b/bb.ml.depends +[cache hit] ocamlc.opt -c -I b -I a -o b/bb.cmo b/bb.ml +[cache hit] ocamlc.opt -c -I a -I b -o a/aa.cmo a/aa.ml +[cache hit] ocamlc.opt str.cma b/bb.cmo a/aa.cmo -o a/aa.byte +[cache hit] ocamlopt.opt -c -I b -I a -o b/bb.cmx b/bb.ml +[cache hit] ocamlopt.opt -c -I a -I b -o a/aa.cmx a/aa.ml +[cache hit] ocamlopt.opt str.cmxa b/bb.cmx a/aa.cmx -o a/aa.native + _____ _ ____ +|_ _|__ ___| |_| ___| + | |/ _ \/ __| __|___ \ + | | __/\__ \ |_ ___) | + |_|\___||___/\__|____/ + ++ CMDOPTS= ++ BUILD=../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display ++ BUILD1=../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display ++ BUILD2=../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt ++ rm -rf _build ++ ../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display +ocamldep.opt -modules d.ml > d.ml.depends +ocamldep.opt -modules a.ml > a.ml.depends +ocamldep.opt -modules a.mli > a.mli.depends +ocamlc.opt -c -o a.cmi a.mli +ocamldep.opt -modules b.ml > b.ml.depends +ocamlc.opt -c -o a.cmo a.ml +ocamlc.opt -c -o b.cmo b.ml +ocamlc.opt -pack a.cmo b.cmo -o c.cmo +ocamlc.opt -c -o d.cmo d.ml +ocamlc.opt c.cmo d.cmo -o d.byte +ocamlopt.opt -c -for-pack C -o a.cmx a.ml +ocamlopt.opt -c -for-pack C -o b.cmx b.ml +mv c.cmi c.cmitmp +ocamlopt.opt -pack a.cmx b.cmx -o c.cmx +cmp c.cmitmp c.cmi +ocamlopt.opt -c -o d.cmx d.ml +ocamlopt.opt c.cmx d.cmx -o d.native ++ ../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules d.ml > d.ml.depends +[cache hit] ocamldep.opt -modules a.ml > a.ml.depends +[cache hit] ocamldep.opt -modules a.mli > a.mli.depends +[cache hit] ocamlc.opt -c -o a.cmi a.mli +[cache hit] ocamlc.opt -c -o a.cmo a.ml +[cache hit] ocamldep.opt -modules b.ml > b.ml.depends +[cache hit] ocamlc.opt -c -o b.cmo b.ml +[cache hit] ocamlc.opt -pack a.cmo b.cmo -o c.cmo +[cache hit] ocamlc.opt -c -o d.cmo d.ml +[cache hit] ocamlc.opt c.cmo d.cmo -o d.byte +[cache hit] ocamlopt.opt -c -for-pack C -o a.cmx a.ml +[cache hit] ocamlopt.opt -c -for-pack C -o b.cmx b.ml +[cache hit] mv c.cmi c.cmitmp +[cache hit] ocamlopt.opt -pack a.cmx b.cmx -o c.cmx +[cache hit] cmp c.cmitmp c.cmi +[cache hit] ocamlopt.opt -c -o d.cmx d.ml +[cache hit] ocamlopt.opt c.cmx d.cmx -o d.native + _____ _ __ +|_ _|__ ___| |_ / /_ + | |/ _ \/ __| __| '_ \ + | | __/\__ \ |_| (_) | + |_|\___||___/\__|\___/ + ++ rm -rf _build ++ CMDOPTS= ++ BUILD=../../_build/ocamlbuild.native -no-skip main.byte -classic-display ++ BUILD1=../../_build/ocamlbuild.native -no-skip main.byte -classic-display ++ BUILD2=../../_build/ocamlbuild.native -no-skip main.byte -classic-display -verbose 0 -nothing-should-be-rebuilt ++ cp b.mli.v1 b.mli ++ cp d.mli.v1 d.mli ++ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display +ocamldep.opt -modules main.ml > main.ml.depends +ocamldep.opt -modules main.mli > main.mli.depends +ocamlc.opt -c -o main.cmi main.mli +ocamldep.opt -modules d.mli > d.mli.depends +ocamldep.opt -modules a.mli > a.mli.depends +ocamlc.opt -c -o d.cmi d.mli +ocamlc.opt -c -o a.cmi a.mli +ocamlc.opt -c -o main.cmo main.ml +ocamldep.opt -modules d.ml > d.ml.depends +ocamldep.opt -modules a.ml > a.ml.depends +ocamldep.opt -modules b.mli > b.mli.depends +ocamlc.opt -c -o b.cmi b.mli +ocamlc.opt -c -o d.cmo d.ml +ocamlc.opt -c -o a.cmo a.ml +ocamldep.opt -modules b.ml > b.ml.depends +ocamlc.opt -c -o b.cmo b.ml +ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte ++ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules main.ml > main.ml.depends +[cache hit] ocamldep.opt -modules main.mli > main.mli.depends +[cache hit] ocamlc.opt -c -o main.cmi main.mli +[cache hit] ocamldep.opt -modules d.mli > d.mli.depends +[cache hit] ocamlc.opt -c -o d.cmi d.mli +[cache hit] ocamldep.opt -modules a.mli > a.mli.depends +[cache hit] ocamlc.opt -c -o a.cmi a.mli +[cache hit] ocamlc.opt -c -o main.cmo main.ml +[cache hit] ocamldep.opt -modules d.ml > d.ml.depends +[cache hit] ocamlc.opt -c -o d.cmo d.ml +[cache hit] ocamldep.opt -modules a.ml > a.ml.depends +[cache hit] ocamldep.opt -modules b.mli > b.mli.depends +[cache hit] ocamlc.opt -c -o b.cmi b.mli +[cache hit] ocamlc.opt -c -o a.cmo a.ml +[cache hit] ocamldep.opt -modules b.ml > b.ml.depends +[cache hit] ocamlc.opt -c -o b.cmo b.ml +[cache hit] ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte ++ cp b.mli.v2 b.mli ++ cp d.mli.v2 d.mli ++ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display +ocamldep.opt -modules d.mli > d.mli.depends +ocamlc.opt -c -o d.cmi d.mli +ocamlc.opt -c -o main.cmo main.ml +ocamldep.opt -modules b.mli > b.mli.depends ++ ocamldep.opt -modules b.mli > b.mli.depends +File "b.mli", line 1, characters 0-2: +Syntax error +Command exited with code 2. ++ cp b.mli.v1 b.mli ++ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display +ocamldep.opt -modules b.mli > b.mli.depends +ocamlc.opt -c -o b.cmi b.mli +ocamlc.opt -c -o d.cmo d.ml +ocamlc.opt -c -o b.cmo b.ml +ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte ++ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules main.ml > main.ml.depends +[cache hit] ocamldep.opt -modules main.mli > main.mli.depends +[cache hit] ocamlc.opt -c -o main.cmi main.mli +[cache hit] ocamldep.opt -modules d.mli > d.mli.depends +[cache hit] ocamlc.opt -c -o d.cmi d.mli +[cache hit] ocamldep.opt -modules a.mli > a.mli.depends +[cache hit] ocamlc.opt -c -o a.cmi a.mli +[cache hit] ocamlc.opt -c -o main.cmo main.ml +[cache hit] ocamldep.opt -modules d.ml > d.ml.depends +[cache hit] ocamlc.opt -c -o d.cmo d.ml +[cache hit] ocamldep.opt -modules a.ml > a.ml.depends +[cache hit] ocamldep.opt -modules b.mli > b.mli.depends +[cache hit] ocamlc.opt -c -o b.cmi b.mli +[cache hit] ocamlc.opt -c -o a.cmo a.ml +[cache hit] ocamldep.opt -modules b.ml > b.ml.depends +[cache hit] ocamlc.opt -c -o b.cmo b.ml +[cache hit] ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte ++ echo PASS +PASS + _____ _ _____ +|_ _|__ ___| ||___ | + | |/ _ \/ __| __| / / + | | __/\__ \ |_ / / + |_|\___||___/\__/_/ + ++ CMDOPTS= ++ BUILD=../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display ++ BUILD1=../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display ++ BUILD2=../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt ++ rm -rf _build ++ svn revert bb.ml ++ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display +ocamlopt.opt -I /Users/ertai/local/lib/ocamlbuild unix.cmxa /Users/ertai/local/lib/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /Users/ertai/local/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild +ocamldep.opt -modules bb.ml > bb.ml.depends +ocamldep.opt -modules bb.mli > bb.mli.depends +ocamlc.opt -c -o bb.cmi bb.mli +ocamldep.opt -modules cc.ml > cc.ml.depends +ocamldep.opt -modules c2.mli > c2.mli.depends +ocamldep.opt -modules aa.ml > aa.ml.depends +ocamlc.opt -c -o c2.cmi c2.mli +ocamlc.opt -c -o aa.cmo aa.ml +ocamlc.opt -c -o bb.cmo bb.ml +ocamlc.opt -c -o cc.cmo cc.ml +ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma +ocamldep.opt -modules main.ml > main.ml.depends +ocamldep.opt -modules c3.ml > c3.ml.depends +ocamlc.opt -c -o c3.cmo c3.ml +ocamlc.opt -c -o main.cmo main.ml +ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends +ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml +ocamldep.opt -modules c2.ml > c2.ml.depends +ocamlc.opt -c -o c2.cmo c2.ml +ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte +ocamlopt.opt -c -o bb.cmx bb.ml +ocamlopt.opt -c -o c2.cmx c2.ml +ocamlopt.opt -c -o aa.cmx aa.ml +ocamlopt.opt -c -o cc.cmx cc.ml +ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa +ocamlopt.opt -c -o c3.cmx c3.ml +ocamlopt.opt -c -o main.cmx main.ml +ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native ++ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends +[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends +[cache hit] ocamlc.opt -c -o bb.cmi bb.mli +[cache hit] ocamlc.opt -c -o bb.cmo bb.ml +[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends +[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends +[cache hit] ocamlc.opt -c -o c2.cmi c2.mli +[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends +[cache hit] ocamlc.opt -c -o aa.cmo aa.ml +[cache hit] ocamlc.opt -c -o cc.cmo cc.ml +[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma +[cache hit] ocamldep.opt -modules main.ml > main.ml.depends +[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends +[cache hit] ocamlc.opt -c -o c3.cmo c3.ml +[cache hit] ocamlc.opt -c -o main.cmo main.ml +[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends +[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml +[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends +[cache hit] ocamlc.opt -c -o c2.cmo c2.ml +[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte +[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml +[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml +[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml +[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml +[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa +[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml +[cache hit] ocamlopt.opt -c -o main.cmx main.ml +[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native ++ cp bb2.ml bb.ml ++ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 +ocamldep.opt -modules bb.ml > bb.ml.depends +[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends +[cache hit] ocamlc.opt -c -o bb.cmi bb.mli +[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends +[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends +[cache hit] ocamlc.opt -c -o c2.cmi c2.mli +[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends +[cache hit] ocamlc.opt -c -o aa.cmo aa.ml +[cache hit] ocamlc.opt -c -o cc.cmo cc.ml +ocamlc.opt -c -o bb.cmo bb.ml +ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma +[cache hit] ocamldep.opt -modules main.ml > main.ml.depends +[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends +[cache hit] ocamlc.opt -c -o c3.cmo c3.ml +[cache hit] ocamlc.opt -c -o main.cmo main.ml +[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends +[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml +[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends +[cache hit] ocamlc.opt -c -o c2.cmo c2.ml +ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte +[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml +ocamlopt.opt -c -o bb.cmx bb.ml +[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml +ocamlopt.opt -c -o cc.cmx cc.ml +ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa +ocamlopt.opt -c -o c3.cmx c3.ml +ocamlopt.opt -c -o main.cmx main.ml +ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native ++ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends +[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends +[cache hit] ocamlc.opt -c -o bb.cmi bb.mli +[cache hit] ocamlc.opt -c -o bb.cmo bb.ml +[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends +[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends +[cache hit] ocamlc.opt -c -o c2.cmi c2.mli +[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends +[cache hit] ocamlc.opt -c -o aa.cmo aa.ml +[cache hit] ocamlc.opt -c -o cc.cmo cc.ml +[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma +[cache hit] ocamldep.opt -modules main.ml > main.ml.depends +[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends +[cache hit] ocamlc.opt -c -o c3.cmo c3.ml +[cache hit] ocamlc.opt -c -o main.cmo main.ml +[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends +[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml +[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends +[cache hit] ocamlc.opt -c -o c2.cmo c2.ml +[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte +[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml +[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml +[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml +[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml +[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa +[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml +[cache hit] ocamlopt.opt -c -o main.cmx main.ml +[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native ++ cp bb3.ml bb.ml ++ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 +ocamldep.opt -modules bb.ml > bb.ml.depends +[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends +[cache hit] ocamlc.opt -c -o bb.cmi bb.mli +[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends +[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends +[cache hit] ocamlc.opt -c -o c2.cmi c2.mli +[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends +[cache hit] ocamlc.opt -c -o aa.cmo aa.ml +[cache hit] ocamlc.opt -c -o cc.cmo cc.ml +ocamlc.opt -c -o bb.cmo bb.ml +ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma +[cache hit] ocamldep.opt -modules main.ml > main.ml.depends +[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends +[cache hit] ocamlc.opt -c -o c3.cmo c3.ml +[cache hit] ocamlc.opt -c -o main.cmo main.ml +[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends +[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml +[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends +[cache hit] ocamlc.opt -c -o c2.cmo c2.ml +ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte +[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml +ocamlopt.opt -c -o bb.cmx bb.ml +[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml +[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml +ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa +[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml +[cache hit] ocamlopt.opt -c -o main.cmx main.ml +ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native ++ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends +[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends +[cache hit] ocamlc.opt -c -o bb.cmi bb.mli +[cache hit] ocamlc.opt -c -o bb.cmo bb.ml +[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends +[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends +[cache hit] ocamlc.opt -c -o c2.cmi c2.mli +[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends +[cache hit] ocamlc.opt -c -o aa.cmo aa.ml +[cache hit] ocamlc.opt -c -o cc.cmo cc.ml +[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma +[cache hit] ocamldep.opt -modules main.ml > main.ml.depends +[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends +[cache hit] ocamlc.opt -c -o c3.cmo c3.ml +[cache hit] ocamlc.opt -c -o main.cmo main.ml +[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends +[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml +[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends +[cache hit] ocamlc.opt -c -o c2.cmo c2.ml +[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte +[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml +[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml +[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml +[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml +[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa +[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml +[cache hit] ocamlopt.opt -c -o main.cmx main.ml +[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native ++ svn revert bb.ml +Reverted 'bb.ml' + _____ _ ___ +|_ _|__ ___| |_( _ ) + | |/ _ \/ __| __/ _ \ + | | __/\__ \ || (_) | + |_|\___||___/\__\___/ + ++ CMDOPTS= ++ BUILD=../../_build/ocamlbuild.native a.byte a.native -no-skip -classic-display ++ BUILD1=../../_build/ocamlbuild.native a.byte a.native -no-skip -classic-display ++ BUILD2=../../_build/ocamlbuild.native a.byte a.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt ++ rm -rf _build ++ ../../_build/ocamlbuild.native a.byte a.native -no-skip -classic-display +ocamlopt.opt -I /Users/ertai/local/lib/ocamlbuild unix.cmxa /Users/ertai/local/lib/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /Users/ertai/local/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild +ocamldep.opt -modules a.ml > a.ml.depends +ocamldep.opt -modules myconfig.ml > myconfig.ml.depends +ocamlc.opt -c -o myconfig.cmo myconfig.ml +ocamlc.opt -c -o a.cmo a.ml +ocamlc.opt myconfig.cmo a.cmo -o a.byte +ocamlopt.opt -c -o myconfig.cmx myconfig.ml +ocamlopt.opt -c -o a.cmx a.ml +ocamlopt.opt myconfig.cmx a.cmx -o a.native ++ ../../_build/ocamlbuild.native a.byte a.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt +[cache hit] ocamldep.opt -modules a.ml > a.ml.depends +[cache hit] ocamldep.opt -modules myconfig.ml > myconfig.ml.depends +[cache hit] ocamlc.opt -c -o myconfig.cmo myconfig.ml +[cache hit] ocamlc.opt -c -o a.cmo a.ml +[cache hit] ocamlc.opt myconfig.cmo a.cmo -o a.byte +[cache hit] ocamlopt.opt -c -o myconfig.cmx myconfig.ml +[cache hit] ocamlopt.opt -c -o a.cmx a.ml +[cache hit] ocamlopt.opt myconfig.cmx a.cmx -o a.native + _____ _ ___ +|_ _|__ ___| |_ / _ \ + | |/ _ \/ __| __| (_) | + | | __/\__ \ |_ \__, | + |_|\___||___/\__| /_/ + +++ dirname ./test9/test.sh ++ cd ./test9/../.. ++ ./_build/ocamlbuild.native -quiet -build-dir _buildtest -no-links test/test9/testglob.native ++ ./_buildtest/test/test9/testglob.native +Globexp for "\"hello\"" OK +Globexp for "<hello>" OK +Globexp for "<hel*lo>" OK +Globexp for "<a> and <b> or <c>" OK +Globexp for "<a> titi" OK +Glob.eval "<[a]>" "a" = true OK +Glob.eval "<[a]>" "b" = false OK +Glob.eval "<[a]>" "a" = true OK +Glob.eval "<[a]>" "b" = false OK +Glob.eval "<[a]>" "a" = true OK +Glob.eval "<[a]>" "b" = false OK +Glob.eval "<[a-z]>" "a" = true OK +Glob.eval "<[a-z]>" "e" = true OK +Glob.eval "<[a-z]>" "k" = true OK +Glob.eval "<[a-z]>" "z" = true OK +Glob.eval "<[a-z]>" "0" = false OK +Glob.eval "<[a-z]>" "A" = false OK +Glob.eval "<[a-z]>" "~" = false OK +Glob.eval "<[a-z]>" "a" = true OK +Glob.eval "<[a-z]>" "e" = true OK +Glob.eval "<[a-z]>" "k" = true OK +Glob.eval "<[a-z]>" "z" = true OK +Glob.eval "<[a-z]>" "0" = false OK +Glob.eval "<[a-z]>" "A" = false OK +Glob.eval "<[a-z]>" "~" = false OK +Glob.eval "<[a-z]>" "a" = true OK +Glob.eval "<[a-z]>" "e" = true OK +Glob.eval "<[a-z]>" "k" = true OK +Glob.eval "<[a-z]>" "z" = true OK +Glob.eval "<[a-z]>" "0" = false OK +Glob.eval "<[a-z]>" "A" = false OK +Glob.eval "<[a-z]>" "~" = false OK +Glob.eval "<[a-z][0-9]>" "a0" = true OK +Glob.eval "<[a-z][0-9]>" "b9" = true OK +Glob.eval "<[a-z][0-9]>" "a00" = false OK +Glob.eval "<[a-z][0-9]>" "a0a" = false OK +Glob.eval "<[a-z][0-9]>" "b0a" = false OK +Glob.eval "<[a-z][0-9]>" "isduis" = false OK +Glob.eval "<[a-z][0-9]>" "" = false OK +Glob.eval "<[a-z][0-9]>" "a0" = true OK +Glob.eval "<[a-z][0-9]>" "b9" = true OK +Glob.eval "<[a-z][0-9]>" "a00" = false OK +Glob.eval "<[a-z][0-9]>" "a0a" = false OK +Glob.eval "<[a-z][0-9]>" "b0a" = false OK +Glob.eval "<[a-z][0-9]>" "isduis" = false OK +Glob.eval "<[a-z][0-9]>" "" = false OK +Glob.eval "<[a-z][0-9]>" "a0" = true OK +Glob.eval "<[a-z][0-9]>" "b9" = true OK +Glob.eval "<[a-z][0-9]>" "a00" = false OK +Glob.eval "<[a-z][0-9]>" "a0a" = false OK +Glob.eval "<[a-z][0-9]>" "b0a" = false OK +Glob.eval "<[a-z][0-9]>" "isduis" = false OK +Glob.eval "<[a-z][0-9]>" "" = false OK +Glob.eval "<hello>" "hello" = true OK +Glob.eval "<hello>" "helli" = false OK +Glob.eval "<hello>" "hello" = true OK +Glob.eval "<hello>" "helli" = false OK +Glob.eval "<hello>" "hello" = true OK +Glob.eval "<hello>" "helli" = false OK +Glob.eval "\"hello\"" "hello" = true OK +Glob.eval "\"hello\"" "heidi" = false OK +Glob.eval "\"hello\"" "hello" = true OK +Glob.eval "\"hello\"" "heidi" = false OK +Glob.eval "\"hello\"" "hello" = true OK +Glob.eval "\"hello\"" "heidi" = false OK +Glob.eval "<*>" "" = true OK +Glob.eval "<*>" "a" = true OK +Glob.eval "<*>" "ax" = true OK +Glob.eval "<*>" "" = true OK +Glob.eval "<*>" "a" = true OK +Glob.eval "<*>" "ax" = true OK +Glob.eval "<*>" "" = true OK +Glob.eval "<*>" "a" = true OK +Glob.eval "<*>" "ax" = true OK +Glob.eval "<a*b>" "ab" = true OK +Glob.eval "<a*b>" "acb" = true OK +Glob.eval "<a*b>" "axxxxxb" = true OK +Glob.eval "<a*b>" "ababbababb" = true OK +Glob.eval "<a*b>" "abx" = false OK +Glob.eval "<a*b>" "xxxxxab" = false OK +Glob.eval "<a*b>" "xab" = false OK +Glob.eval "<a*b>" "ab" = true OK +Glob.eval "<a*b>" "acb" = true OK +Glob.eval "<a*b>" "axxxxxb" = true OK +Glob.eval "<a*b>" "ababbababb" = true OK +Glob.eval "<a*b>" "abx" = false OK +Glob.eval "<a*b>" "xxxxxab" = false OK +Glob.eval "<a*b>" "xab" = false OK +Glob.eval "<a*b>" "ab" = true OK +Glob.eval "<a*b>" "acb" = true OK +Glob.eval "<a*b>" "axxxxxb" = true OK +Glob.eval "<a*b>" "ababbababb" = true OK +Glob.eval "<a*b>" "abx" = false OK +Glob.eval "<a*b>" "xxxxxab" = false OK +Glob.eval "<a*b>" "xab" = false OK +Glob.eval "<*.ml>" "hello.ml" = true OK +Glob.eval "<*.ml>" ".ml" = true OK +Glob.eval "<*.ml>" "ml" = false OK +Glob.eval "<*.ml>" "" = false OK +Glob.eval "<*.ml>" "toto.mli" = false OK +Glob.eval "<*.ml>" "hello.ml" = true OK +Glob.eval "<*.ml>" ".ml" = true OK +Glob.eval "<*.ml>" "ml" = false OK +Glob.eval "<*.ml>" "" = false OK +Glob.eval "<*.ml>" "toto.mli" = false OK +Glob.eval "<*.ml>" "hello.ml" = true OK +Glob.eval "<*.ml>" ".ml" = true OK +Glob.eval "<*.ml>" "ml" = false OK +Glob.eval "<*.ml>" "" = false OK +Glob.eval "<*.ml>" "toto.mli" = false OK +Glob.eval "<a>" "a" = true OK +Glob.eval "<a>" "" = false OK +Glob.eval "<a>" "aa" = false OK +Glob.eval "<a>" "ba" = false OK +Glob.eval "<a>" "ab" = false OK +Glob.eval "<a>" "abaa" = false OK +Glob.eval "<a>" "a" = true OK +Glob.eval "<a>" "" = false OK +Glob.eval "<a>" "aa" = false OK +Glob.eval "<a>" "ba" = false OK +Glob.eval "<a>" "ab" = false OK +Glob.eval "<a>" "abaa" = false OK +Glob.eval "<a>" "a" = true OK +Glob.eval "<a>" "" = false OK +Glob.eval "<a>" "aa" = false OK +Glob.eval "<a>" "ba" = false OK +Glob.eval "<a>" "ab" = false OK +Glob.eval "<a>" "abaa" = false OK +Glob.eval "<ab>" "ab" = true OK +Glob.eval "<ab>" "" = false OK +Glob.eval "<ab>" "abab" = false OK +Glob.eval "<ab>" "aba" = false OK +Glob.eval "<ab>" "abx" = false OK +Glob.eval "<ab>" "ab" = true OK +Glob.eval "<ab>" "" = false OK +Glob.eval "<ab>" "abab" = false OK +Glob.eval "<ab>" "aba" = false OK +Glob.eval "<ab>" "abx" = false OK +Glob.eval "<ab>" "ab" = true OK +Glob.eval "<ab>" "" = false OK +Glob.eval "<ab>" "abab" = false OK +Glob.eval "<ab>" "aba" = false OK +Glob.eval "<ab>" "abx" = false OK +Glob.eval "<ab?c>" "abac" = true OK +Glob.eval "<ab?c>" "abxc" = true OK +Glob.eval "<ab?c>" "abab" = false OK +Glob.eval "<ab?c>" "ababab" = false OK +Glob.eval "<ab?c>" "ababa" = false OK +Glob.eval "<ab?c>" "abac" = true OK +Glob.eval "<ab?c>" "abxc" = true OK +Glob.eval "<ab?c>" "abab" = false OK +Glob.eval "<ab?c>" "ababab" = false OK +Glob.eval "<ab?c>" "ababa" = false OK +Glob.eval "<ab?c>" "abac" = true OK +Glob.eval "<ab?c>" "abxc" = true OK +Glob.eval "<ab?c>" "abab" = false OK +Glob.eval "<ab?c>" "ababab" = false OK +Glob.eval "<ab?c>" "ababa" = false OK +Glob.eval "<*ab?cd*>" "123abecd345" = true OK +Glob.eval "<*ab?cd*>" "abccd" = true OK +Glob.eval "<*ab?cd*>" "abccd345" = true OK +Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK +Glob.eval "<*ab?cd*>" "abcd" = false OK +Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK +Glob.eval "<*ab?cd*>" "123abecd345" = true OK +Glob.eval "<*ab?cd*>" "abccd" = true OK +Glob.eval "<*ab?cd*>" "abccd345" = true OK +Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK +Glob.eval "<*ab?cd*>" "abcd" = false OK +Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK +Glob.eval "<*ab?cd*>" "123abecd345" = true OK +Glob.eval "<*ab?cd*>" "abccd" = true OK +Glob.eval "<*ab?cd*>" "abccd345" = true OK +Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK +Glob.eval "<*ab?cd*>" "abcd" = false OK +Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK +Glob.eval "<*this*is*a*test*>" "this is a test" = true OK +Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK +Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK +Glob.eval "<*this*is*a*test*>" "thisatest" = false OK +Glob.eval "<*this*is*a*test*>" "this is a test" = true OK +Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK +Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK +Glob.eval "<*this*is*a*test*>" "thisatest" = false OK +Glob.eval "<*this*is*a*test*>" "this is a test" = true OK +Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK +Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK +Glob.eval "<*this*is*a*test*>" "thisatest" = false OK +Glob.eval "<b*>" "bxx" = true OK +Glob.eval "<b*>" "bx" = true OK +Glob.eval "<b*>" "aaab" = false OK +Glob.eval "<b*>" "" = false OK +Glob.eval "<b*>" "bxx" = true OK +Glob.eval "<b*>" "bx" = true OK +Glob.eval "<b*>" "aaab" = false OK +Glob.eval "<b*>" "" = false OK +Glob.eval "<b*>" "bxx" = true OK +Glob.eval "<b*>" "bx" = true OK +Glob.eval "<b*>" "aaab" = false OK +Glob.eval "<b*>" "" = false OK +Glob.eval "<*>" "" = true OK +Glob.eval "<*>" "a" = true OK +Glob.eval "<*>" "aaa" = true OK +Glob.eval "<*>" "aaaaa" = true OK +Glob.eval "<*>" "" = true OK +Glob.eval "<*>" "a" = true OK +Glob.eval "<*>" "aaa" = true OK +Glob.eval "<*>" "aaaaa" = true OK +Glob.eval "<*>" "" = true OK +Glob.eval "<*>" "a" = true OK +Glob.eval "<*>" "aaa" = true OK +Glob.eval "<*>" "aaaaa" = true OK +Glob.eval "<?>" "a" = true OK +Glob.eval "<?>" "" = false OK +Glob.eval "<?>" "aaa" = false OK +Glob.eval "<?>" "aaaaa" = false OK +Glob.eval "<?>" "a" = true OK +Glob.eval "<?>" "" = false OK +Glob.eval "<?>" "aaa" = false OK +Glob.eval "<?>" "aaaaa" = false OK +Glob.eval "<?>" "a" = true OK +Glob.eval "<?>" "" = false OK +Glob.eval "<?>" "aaa" = false OK +Glob.eval "<?>" "aaaaa" = false OK +Glob.eval "<{a,b}>" "a" = true OK +Glob.eval "<{a,b}>" "b" = true OK +Glob.eval "<{a,b}>" "" = false OK +Glob.eval "<{a,b}>" "aa" = false OK +Glob.eval "<{a,b}>" "ab" = false OK +Glob.eval "<{a,b}>" "ba" = false OK +Glob.eval "<{a,b}>" "bb" = false OK +Glob.eval "<{a,b}>" "c" = false OK +Glob.eval "<{a,b}>" "a" = true OK +Glob.eval "<{a,b}>" "b" = true OK +Glob.eval "<{a,b}>" "" = false OK +Glob.eval "<{a,b}>" "aa" = false OK +Glob.eval "<{a,b}>" "ab" = false OK +Glob.eval "<{a,b}>" "ba" = false OK +Glob.eval "<{a,b}>" "bb" = false OK +Glob.eval "<{a,b}>" "c" = false OK +Glob.eval "<{a,b}>" "a" = true OK +Glob.eval "<{a,b}>" "b" = true OK +Glob.eval "<{a,b}>" "" = false OK +Glob.eval "<{a,b}>" "aa" = false OK +Glob.eval "<{a,b}>" "ab" = false OK +Glob.eval "<{a,b}>" "ba" = false OK +Glob.eval "<{a,b}>" "bb" = false OK +Glob.eval "<{a,b}>" "c" = false OK +Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK +Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK +Glob.eval "<toto.{ml,mli}>" "toto." = false OK +Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK +Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK +Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK +Glob.eval "<toto.{ml,mli}>" "toto." = false OK +Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK +Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK +Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK +Glob.eval "<toto.{ml,mli}>" "toto." = false OK +Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK +Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK +Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK +Glob.eval "<*>" "alpha" = true OK +Glob.eval "<*>" "beta" = true OK +Glob.eval "<*>" "alpha/beta" = false OK +Glob.eval "<*>" "gamma/delta" = false OK +Glob.eval "<*>" "alpha" = true OK +Glob.eval "<*>" "beta" = true OK +Glob.eval "<*>" "alpha/beta" = false OK +Glob.eval "<*>" "gamma/delta" = false OK +Glob.eval "<*>" "alpha" = true OK +Glob.eval "<*>" "beta" = true OK +Glob.eval "<*>" "alpha/beta" = false OK +Glob.eval "<*>" "gamma/delta" = false OK +Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha" = false OK +Glob.eval "<alpha/**/beta>" "beta" = false OK +Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK +Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha" = false OK +Glob.eval "<alpha/**/beta>" "beta" = false OK +Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK +Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK +Glob.eval "<alpha/**/beta>" "alpha" = false OK +Glob.eval "<alpha/**/beta>" "beta" = false OK +Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK +Glob.eval "<**/*.ml>" "toto.ml" = true OK +Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK +Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK +Glob.eval "<**/*.ml>" "toto.mli" = false OK +Glob.eval "<**/*.ml>" "toto.ml" = true OK +Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK +Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK +Glob.eval "<**/*.ml>" "toto.mli" = false OK +Glob.eval "<**/*.ml>" "toto.ml" = true OK +Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK +Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK +Glob.eval "<**/*.ml>" "toto.mli" = false OK +Glob.eval "<toto/**>" "toto/" = true OK +Glob.eval "<toto/**>" "toto/tata" = true OK +Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK +Glob.eval "<toto/**>" "toto" = true OK +Glob.eval "<toto/**>" "toto2/tata" = false OK +Glob.eval "<toto/**>" "tata/titi" = false OK +Glob.eval "<toto/**>" "toto/" = true OK +Glob.eval "<toto/**>" "toto/tata" = true OK +Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK +Glob.eval "<toto/**>" "toto" = true OK +Glob.eval "<toto/**>" "toto2/tata" = false OK +Glob.eval "<toto/**>" "tata/titi" = false OK +Glob.eval "<toto/**>" "toto/" = true OK +Glob.eval "<toto/**>" "toto/tata" = true OK +Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK +Glob.eval "<toto/**>" "toto" = true OK +Glob.eval "<toto/**>" "toto2/tata" = false OK +Glob.eval "<toto/**>" "tata/titi" = false OK diff --git a/ocamlbuild/test/runtest.sh b/ocamlbuild/test/runtest.sh new file mode 100755 index 000000000..7bdb76be1 --- /dev/null +++ b/ocamlbuild/test/runtest.sh @@ -0,0 +1,34 @@ +#!/bin/sh +set -e +cd `dirname $0` + +myfiglet() { + figlet $@ | sed 's/ *$//' +} + +if figlet ""; then + BANNER=myfiglet +else + echo "Install figlet to have a better output, press enter to continue with echo" + read + BANNER=echo +fi + +HERE=`pwd` + +$BANNER Test2 +./test2/test.sh $@ +$BANNER Test3 +./test3/test.sh $@ +$BANNER Test4 +./test4/test.sh $@ +$BANNER Test5 +./test5/test.sh $@ +$BANNER Test6 +./test6/test.sh $@ +$BANNER Test7 +./test7/test.sh $@ +$BANNER Test8 +./test8/test.sh $@ +$BANNER Test9 +./test9/test.sh $@ diff --git a/ocamlbuild/test/test1/foo.ml b/ocamlbuild/test/test1/foo.ml new file mode 100644 index 000000000..43a510651 --- /dev/null +++ b/ocamlbuild/test/test1/foo.ml @@ -0,0 +1 @@ +module MA1 = A1 diff --git a/ocamlbuild/test/test10/dbdi b/ocamlbuild/test/test10/dbdi new file mode 100644 index 000000000..7f548108b --- /dev/null +++ b/ocamlbuild/test/test10/dbdi @@ -0,0 +1,12 @@ +#load "discard_printf.cmo";; +#load "debug.cmo";; +#load "unix.cma";; +#load "str.cma";; +#load "my_unix.cmo";; +#load "bool.cmo";; +#load "glob_ast.cmo";; +#load "glob_lexer.cmo";; +#load "glob.cmo";; +#load "lexers.cmo";; +#load "my_std.cmo";; +#load "tags.cmo";; diff --git a/ocamlbuild/test/test10/test.sh b/ocamlbuild/test/test10/test.sh new file mode 100755 index 000000000..1f96443c5 --- /dev/null +++ b/ocamlbuild/test/test10/test.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e +set -x +cd `dirname $0`/../.. +./_build/ocamlbuild.native -quiet -build-dir _buildtest -no-links test/test9/testglob.native +./_buildtest/test/test9/testglob.native diff --git a/ocamlbuild/test/test2/_tags b/ocamlbuild/test/test2/_tags new file mode 100644 index 000000000..354ad4e69 --- /dev/null +++ b/ocamlbuild/test/test2/_tags @@ -0,0 +1 @@ +"vivi.ml": camlp4o diff --git a/ocamlbuild/test/test2/tata.ml b/ocamlbuild/test/test2/tata.ml new file mode 100644 index 000000000..361fadd35 --- /dev/null +++ b/ocamlbuild/test/test2/tata.ml @@ -0,0 +1 @@ +let tata = "TATA2" diff --git a/ocamlbuild/test/test2/tata.mli b/ocamlbuild/test/test2/tata.mli new file mode 100644 index 000000000..7c7175c91 --- /dev/null +++ b/ocamlbuild/test/test2/tata.mli @@ -0,0 +1,2 @@ +(* a comment *) +val tata : string diff --git a/ocamlbuild/test/test2/test.sh b/ocamlbuild/test/test2/test.sh new file mode 100755 index 000000000..8bbd7c7a7 --- /dev/null +++ b/ocamlbuild/test/test2/test.sh @@ -0,0 +1,18 @@ +#!/bin/sh +cd `dirname $0` +set -e +set -x +CMDOPTS="-- -help" +BUILD="../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display $@" +BUILD1="$BUILD $CMDOPTS" +BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS" +rm -rf _build +cp vivi1.ml vivi.ml +$BUILD1 +$BUILD2 +cp vivi2.ml vivi.ml +$BUILD1 +$BUILD2 +cp vivi3.ml vivi.ml +$BUILD1 +$BUILD2 diff --git a/ocamlbuild/test/test2/titi.ml b/ocamlbuild/test/test2/titi.ml new file mode 100644 index 000000000..3abbf1d2e --- /dev/null +++ b/ocamlbuild/test/test2/titi.ml @@ -0,0 +1 @@ +let titi = [] diff --git a/ocamlbuild/test/test2/toto.ml b/ocamlbuild/test/test2/toto.ml new file mode 100644 index 000000000..dbb5a43d3 --- /dev/null +++ b/ocamlbuild/test/test2/toto.ml @@ -0,0 +1,5 @@ +let i = Tutu.tutu + 10 +let s = Tata.tata ^ ".ml" +let l = 3 :: Titi.titi +let () = Format.printf "toto.native: %s: Hello world!!!@." Sys.argv.(0) +let () = Format.printf "Tutu.tutu => %d@.Tata.tata => %S@." Tutu.tutu Tata.tata diff --git a/ocamlbuild/test/test2/tutu.ml b/ocamlbuild/test/test2/tutu.ml new file mode 100644 index 000000000..2e8015b70 --- /dev/null +++ b/ocamlbuild/test/test2/tutu.ml @@ -0,0 +1,2 @@ +let tutu = (Array.length Vivi.vivi : Tyty.t) +let tutu' = 2.0 +. float_of_int tutu diff --git a/ocamlbuild/test/test2/tutu.mli b/ocamlbuild/test/test2/tutu.mli new file mode 100644 index 000000000..26657f87c --- /dev/null +++ b/ocamlbuild/test/test2/tutu.mli @@ -0,0 +1,3 @@ +(* a comment *) +val tutu : int +val tutu' : float diff --git a/ocamlbuild/test/test2/tyty.mli b/ocamlbuild/test/test2/tyty.mli new file mode 100644 index 000000000..975adb531 --- /dev/null +++ b/ocamlbuild/test/test2/tyty.mli @@ -0,0 +1 @@ +type t = int diff --git a/ocamlbuild/test/test2/vivi1.ml b/ocamlbuild/test/test2/vivi1.ml new file mode 100644 index 000000000..1c0517e01 --- /dev/null +++ b/ocamlbuild/test/test2/vivi1.ml @@ -0,0 +1,2 @@ +let rec p i = [< '1; '2; p (i + 1) >] +let vivi = [|2|] diff --git a/ocamlbuild/test/test2/vivi2.ml b/ocamlbuild/test/test2/vivi2.ml new file mode 100644 index 000000000..1fb48c176 --- /dev/null +++ b/ocamlbuild/test/test2/vivi2.ml @@ -0,0 +1,2 @@ +let rec p i = [< '1; '2; p (i + 1) >] +let vivi = [|3|] diff --git a/ocamlbuild/test/test2/vivi3.ml b/ocamlbuild/test/test2/vivi3.ml new file mode 100644 index 000000000..7849fad65 --- /dev/null +++ b/ocamlbuild/test/test2/vivi3.ml @@ -0,0 +1,2 @@ +let rec p i = [< '1; '2; p (i + 1) >] +let vivi = [|2.1; 1.1|] diff --git a/ocamlbuild/test/test3/_tags b/ocamlbuild/test/test3/_tags new file mode 100644 index 000000000..4505f13fd --- /dev/null +++ b/ocamlbuild/test/test3/_tags @@ -0,0 +1 @@ +"a.byte" or "a.native": use_unix diff --git a/ocamlbuild/test/test3/a.ml b/ocamlbuild/test/test3/a.ml new file mode 100644 index 000000000..d4586eae7 --- /dev/null +++ b/ocamlbuild/test/test3/a.ml @@ -0,0 +1 @@ +module X = B diff --git a/ocamlbuild/test/test3/a.mli b/ocamlbuild/test/test3/a.mli new file mode 100644 index 000000000..c17617a6e --- /dev/null +++ b/ocamlbuild/test/test3/a.mli @@ -0,0 +1 @@ +(* Nothing *) diff --git a/ocamlbuild/test/test3/b.ml b/ocamlbuild/test/test3/b.ml new file mode 100644 index 000000000..58c510c1e --- /dev/null +++ b/ocamlbuild/test/test3/b.ml @@ -0,0 +1 @@ +module X = C diff --git a/ocamlbuild/test/test3/b.mli b/ocamlbuild/test/test3/b.mli new file mode 100644 index 000000000..5eea48096 --- /dev/null +++ b/ocamlbuild/test/test3/b.mli @@ -0,0 +1 @@ +(* nothing *) diff --git a/ocamlbuild/test/test3/c.ml b/ocamlbuild/test/test3/c.ml new file mode 100644 index 000000000..06f0fd918 --- /dev/null +++ b/ocamlbuild/test/test3/c.ml @@ -0,0 +1 @@ +module X = D diff --git a/ocamlbuild/test/test3/c.mli b/ocamlbuild/test/test3/c.mli new file mode 100644 index 000000000..5eea48096 --- /dev/null +++ b/ocamlbuild/test/test3/c.mli @@ -0,0 +1 @@ +(* nothing *) diff --git a/ocamlbuild/test/test3/d.ml b/ocamlbuild/test/test3/d.ml new file mode 100644 index 000000000..42ab72424 --- /dev/null +++ b/ocamlbuild/test/test3/d.ml @@ -0,0 +1 @@ +module X = E diff --git a/ocamlbuild/test/test3/d.mli b/ocamlbuild/test/test3/d.mli new file mode 100644 index 000000000..5eea48096 --- /dev/null +++ b/ocamlbuild/test/test3/d.mli @@ -0,0 +1 @@ +(* nothing *) diff --git a/ocamlbuild/test/test3/e.ml b/ocamlbuild/test/test3/e.ml new file mode 100644 index 000000000..863ea00c8 --- /dev/null +++ b/ocamlbuild/test/test3/e.ml @@ -0,0 +1 @@ +module X = F diff --git a/ocamlbuild/test/test3/e.mli b/ocamlbuild/test/test3/e.mli new file mode 100644 index 000000000..5eea48096 --- /dev/null +++ b/ocamlbuild/test/test3/e.mli @@ -0,0 +1 @@ +(* nothing *) diff --git a/ocamlbuild/test/test3/f.ml b/ocamlbuild/test/test3/f.ml new file mode 100644 index 000000000..00915fdc1 --- /dev/null +++ b/ocamlbuild/test/test3/f.ml @@ -0,0 +1,2 @@ +(* nothing *) +let _ = Unix.stat diff --git a/ocamlbuild/test/test3/f.mli b/ocamlbuild/test/test3/f.mli new file mode 100644 index 000000000..5eea48096 --- /dev/null +++ b/ocamlbuild/test/test3/f.mli @@ -0,0 +1 @@ +(* nothing *) diff --git a/ocamlbuild/test/test3/proj.odocl b/ocamlbuild/test/test3/proj.odocl new file mode 100644 index 000000000..532c72038 --- /dev/null +++ b/ocamlbuild/test/test3/proj.odocl @@ -0,0 +1 @@ +A B C D E F diff --git a/ocamlbuild/test/test3/test.sh b/ocamlbuild/test/test3/test.sh new file mode 100755 index 000000000..396aaf2aa --- /dev/null +++ b/ocamlbuild/test/test3/test.sh @@ -0,0 +1,11 @@ +#!/bin/sh +cd `dirname $0` +set -e +set -x +CMDOTPS="" # -- command args +BUILD="../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display $@" +BUILD1="$BUILD $CMDOPTS" +BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS" +rm -rf _build +$BUILD1 +$BUILD2 diff --git a/ocamlbuild/test/test4/_tags b/ocamlbuild/test/test4/_tags new file mode 100644 index 000000000..4b6e7986e --- /dev/null +++ b/ocamlbuild/test/test4/_tags @@ -0,0 +1,2 @@ +# a comment +"a/aa.byte" or "a/aa.native": use_str diff --git a/ocamlbuild/test/test4/a/aa.ml b/ocamlbuild/test/test4/a/aa.ml new file mode 100644 index 000000000..411d29bff --- /dev/null +++ b/ocamlbuild/test/test4/a/aa.ml @@ -0,0 +1 @@ +let bar = 3 + List.length Bb.foo diff --git a/ocamlbuild/test/test4/a/aa.mli b/ocamlbuild/test/test4/a/aa.mli new file mode 100644 index 000000000..20f3c52a8 --- /dev/null +++ b/ocamlbuild/test/test4/a/aa.mli @@ -0,0 +1 @@ +val bar : int diff --git a/ocamlbuild/test/test4/b/bb.ml b/ocamlbuild/test/test4/b/bb.ml new file mode 100644 index 000000000..031031fba --- /dev/null +++ b/ocamlbuild/test/test4/b/bb.ml @@ -0,0 +1,2 @@ +let r = Str.regexp "r" +let foo = [2.2] diff --git a/ocamlbuild/test/test4/test.sh b/ocamlbuild/test/test4/test.sh new file mode 100755 index 000000000..4b2580a8d --- /dev/null +++ b/ocamlbuild/test/test4/test.sh @@ -0,0 +1,11 @@ +#!/bin/sh +cd `dirname $0` +set -e +set -x +CMDOTPS="" # -- command args +BUILD="../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display $@" +BUILD1="$BUILD $CMDOPTS" +BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS" +rm -rf _build +$BUILD1 +$BUILD2 diff --git a/ocamlbuild/test/test5/_tags b/ocamlbuild/test/test5/_tags new file mode 100644 index 000000000..2f66a28c1 --- /dev/null +++ b/ocamlbuild/test/test5/_tags @@ -0,0 +1 @@ +"a.cmx" or "b.cmx": for-pack(C) diff --git a/ocamlbuild/test/test5/a.ml b/ocamlbuild/test/test5/a.ml new file mode 100644 index 000000000..250900301 --- /dev/null +++ b/ocamlbuild/test/test5/a.ml @@ -0,0 +1 @@ +let a = 42 diff --git a/ocamlbuild/test/test5/a.mli b/ocamlbuild/test/test5/a.mli new file mode 100644 index 000000000..3f79c8149 --- /dev/null +++ b/ocamlbuild/test/test5/a.mli @@ -0,0 +1 @@ +val a : int diff --git a/ocamlbuild/test/test5/b.ml b/ocamlbuild/test/test5/b.ml new file mode 100644 index 000000000..8db5ca3b8 --- /dev/null +++ b/ocamlbuild/test/test5/b.ml @@ -0,0 +1 @@ +let b = A.a + 1 diff --git a/ocamlbuild/test/test5/c.mlpack b/ocamlbuild/test/test5/c.mlpack new file mode 100644 index 000000000..5decc2b6a --- /dev/null +++ b/ocamlbuild/test/test5/c.mlpack @@ -0,0 +1 @@ +A B diff --git a/ocamlbuild/test/test5/d.ml b/ocamlbuild/test/test5/d.ml new file mode 100644 index 000000000..a5ec43298 --- /dev/null +++ b/ocamlbuild/test/test5/d.ml @@ -0,0 +1 @@ +Format.printf "C.B.b = %d@." C.B.b diff --git a/ocamlbuild/test/test5/test.sh b/ocamlbuild/test/test5/test.sh new file mode 100755 index 000000000..9d78f1991 --- /dev/null +++ b/ocamlbuild/test/test5/test.sh @@ -0,0 +1,11 @@ +#!/bin/sh +cd `dirname $0` +set -e +set -x +CMDOPTS="" # -- command args +BUILD="../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display $@" +BUILD1="$BUILD $CMDOPTS" +BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS" +rm -rf _build +$BUILD1 +$BUILD2 diff --git a/ocamlbuild/test/test6/a.ml b/ocamlbuild/test/test6/a.ml new file mode 100644 index 000000000..e09e5d02a --- /dev/null +++ b/ocamlbuild/test/test6/a.ml @@ -0,0 +1 @@ +let a = B.b diff --git a/ocamlbuild/test/test6/a.mli b/ocamlbuild/test/test6/a.mli new file mode 100644 index 000000000..451c586eb --- /dev/null +++ b/ocamlbuild/test/test6/a.mli @@ -0,0 +1 @@ +val a : 'a -> 'a diff --git a/ocamlbuild/test/test6/b.ml b/ocamlbuild/test/test6/b.ml new file mode 100644 index 000000000..362c8fc15 --- /dev/null +++ b/ocamlbuild/test/test6/b.ml @@ -0,0 +1 @@ +let b = D.d diff --git a/ocamlbuild/test/test6/b.mli b/ocamlbuild/test/test6/b.mli new file mode 100644 index 000000000..685b7906b --- /dev/null +++ b/ocamlbuild/test/test6/b.mli @@ -0,0 +1 @@ +val b : 'a -> 'a diff --git a/ocamlbuild/test/test6/b.mli.v1 b/ocamlbuild/test/test6/b.mli.v1 new file mode 100644 index 000000000..685b7906b --- /dev/null +++ b/ocamlbuild/test/test6/b.mli.v1 @@ -0,0 +1 @@ +val b : 'a -> 'a diff --git a/ocamlbuild/test/test6/b.mli.v2 b/ocamlbuild/test/test6/b.mli.v2 new file mode 100644 index 000000000..a43169837 --- /dev/null +++ b/ocamlbuild/test/test6/b.mli.v2 @@ -0,0 +1,2 @@ +.... +val b : 'a -> 'a diff --git a/ocamlbuild/test/test6/d.ml b/ocamlbuild/test/test6/d.ml new file mode 100644 index 000000000..61c7a9c62 --- /dev/null +++ b/ocamlbuild/test/test6/d.ml @@ -0,0 +1,2 @@ +type t +let d x = x diff --git a/ocamlbuild/test/test6/d.mli b/ocamlbuild/test/test6/d.mli new file mode 100644 index 000000000..1db89bbe6 --- /dev/null +++ b/ocamlbuild/test/test6/d.mli @@ -0,0 +1 @@ +val d : 'a -> 'a diff --git a/ocamlbuild/test/test6/d.mli.v1 b/ocamlbuild/test/test6/d.mli.v1 new file mode 100644 index 000000000..12fea1c16 --- /dev/null +++ b/ocamlbuild/test/test6/d.mli.v1 @@ -0,0 +1,2 @@ +type t +val d : 'a -> 'a diff --git a/ocamlbuild/test/test6/d.mli.v2 b/ocamlbuild/test/test6/d.mli.v2 new file mode 100644 index 000000000..1db89bbe6 --- /dev/null +++ b/ocamlbuild/test/test6/d.mli.v2 @@ -0,0 +1 @@ +val d : 'a -> 'a diff --git a/ocamlbuild/test/test6/main.ml b/ocamlbuild/test/test6/main.ml new file mode 100644 index 000000000..61acf1283 --- /dev/null +++ b/ocamlbuild/test/test6/main.ml @@ -0,0 +1 @@ +A.a 2. +. D.d 1. diff --git a/ocamlbuild/test/test6/main.mli b/ocamlbuild/test/test6/main.mli new file mode 100644 index 000000000..5eea48096 --- /dev/null +++ b/ocamlbuild/test/test6/main.mli @@ -0,0 +1 @@ +(* nothing *) diff --git a/ocamlbuild/test/test6/test.sh b/ocamlbuild/test/test6/test.sh new file mode 100755 index 000000000..fedbc9c9b --- /dev/null +++ b/ocamlbuild/test/test6/test.sh @@ -0,0 +1,26 @@ +#!/bin/sh +cd `dirname $0` +set -x +rm -rf _build +CMDOPTS="" # -- command args +BUILD="../../_build/ocamlbuild.native -no-skip main.byte -classic-display $@" +BUILD1="$BUILD $CMDOPTS" +BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS" +cp b.mli.v1 b.mli +cp d.mli.v1 d.mli +$BUILD1 +$BUILD2 +cp b.mli.v2 b.mli +cp d.mli.v2 d.mli +$BUILD1 +cp b.mli.v1 b.mli +if $BUILD1; then + if $BUILD2; then + echo PASS + else + echo "FAIL (-nothing-should-be-rebuilt)" + fi +else + echo FAIL +fi + diff --git a/ocamlbuild/test/test7/_tags b/ocamlbuild/test/test7/_tags new file mode 100644 index 000000000..8501e3285 --- /dev/null +++ b/ocamlbuild/test/test7/_tags @@ -0,0 +1 @@ +"main.byte": my_cool_plugin diff --git a/ocamlbuild/test/test7/aa.ml b/ocamlbuild/test/test7/aa.ml new file mode 100644 index 000000000..877d0af14 --- /dev/null +++ b/ocamlbuild/test/test7/aa.ml @@ -0,0 +1 @@ +let aa = "aa" diff --git a/ocamlbuild/test/test7/bb.ml b/ocamlbuild/test/test7/bb.ml new file mode 100644 index 000000000..9ac2d5965 --- /dev/null +++ b/ocamlbuild/test/test7/bb.ml @@ -0,0 +1 @@ +let bb = 43 diff --git a/ocamlbuild/test/test7/bb.mli b/ocamlbuild/test/test7/bb.mli new file mode 100644 index 000000000..9256de2b1 --- /dev/null +++ b/ocamlbuild/test/test7/bb.mli @@ -0,0 +1 @@ +val bb : int diff --git a/ocamlbuild/test/test7/bb2.ml b/ocamlbuild/test/test7/bb2.ml new file mode 100644 index 000000000..2f91b988b --- /dev/null +++ b/ocamlbuild/test/test7/bb2.ml @@ -0,0 +1,3 @@ +let bb = 43 +let f x = x + 1 +let () = incr (ref 0) diff --git a/ocamlbuild/test/test7/bb3.ml b/ocamlbuild/test/test7/bb3.ml new file mode 100644 index 000000000..b7ad4b5c2 --- /dev/null +++ b/ocamlbuild/test/test7/bb3.ml @@ -0,0 +1,3 @@ +let bb = 43 +let f x = x + 1 +let () = incr (ref 1) diff --git a/ocamlbuild/test/test7/bbcc.mllib b/ocamlbuild/test/test7/bbcc.mllib new file mode 100644 index 000000000..a97a0e6c2 --- /dev/null +++ b/ocamlbuild/test/test7/bbcc.mllib @@ -0,0 +1 @@ +Bb Cc diff --git a/ocamlbuild/test/test7/c2.ml b/ocamlbuild/test/test7/c2.ml new file mode 100644 index 000000000..36ff6d6fb --- /dev/null +++ b/ocamlbuild/test/test7/c2.ml @@ -0,0 +1 @@ +let c2 = 12 diff --git a/ocamlbuild/test/test7/c2.mli b/ocamlbuild/test/test7/c2.mli new file mode 100644 index 000000000..19fe565df --- /dev/null +++ b/ocamlbuild/test/test7/c2.mli @@ -0,0 +1 @@ +val c2 : int diff --git a/ocamlbuild/test/test7/c3.ml b/ocamlbuild/test/test7/c3.ml new file mode 100644 index 000000000..277e1ee0a --- /dev/null +++ b/ocamlbuild/test/test7/c3.ml @@ -0,0 +1 @@ +let c3 = Bb.bb + 13 diff --git a/ocamlbuild/test/test7/cc.ml b/ocamlbuild/test/test7/cc.ml new file mode 100644 index 000000000..b39ef21df --- /dev/null +++ b/ocamlbuild/test/test7/cc.ml @@ -0,0 +1 @@ +let cc = (String.length Aa.aa) + Bb.bb + C2.c2 diff --git a/ocamlbuild/test/test7/cool_plugin.ml b/ocamlbuild/test/test7/cool_plugin.ml new file mode 100644 index 000000000..322518687 --- /dev/null +++ b/ocamlbuild/test/test7/cool_plugin.ml @@ -0,0 +1 @@ +print_endline "I am a cool plugin" diff --git a/ocamlbuild/test/test7/main.ml b/ocamlbuild/test/test7/main.ml new file mode 100644 index 000000000..f12195969 --- /dev/null +++ b/ocamlbuild/test/test7/main.ml @@ -0,0 +1 @@ +let main = String.length Aa.aa - Bb.bb - C3.c3 - Cc.cc - 1 diff --git a/ocamlbuild/test/test7/myocamlbuild.ml b/ocamlbuild/test/test7/myocamlbuild.ml new file mode 100644 index 000000000..12b274ff0 --- /dev/null +++ b/ocamlbuild/test/test7/myocamlbuild.ml @@ -0,0 +1,3 @@ +open Ocamlbuild_plugin;; +use_lib "main" "bbcc";; +dep ["ocaml"; "link"; "byte"; "my_cool_plugin"] ["cool_plugin.cmo"];; diff --git a/ocamlbuild/test/test7/test.sh b/ocamlbuild/test/test7/test.sh new file mode 100755 index 000000000..0ccb69d98 --- /dev/null +++ b/ocamlbuild/test/test7/test.sh @@ -0,0 +1,19 @@ +#!/bin/sh +cd `dirname $0` +set -e +set -x +CMDOPTS="" # -- command args +BUILD="../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display $@" +BUILD1="$BUILD $CMDARGS" +BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDARGS" +rm -rf _build +svn revert bb.ml +$BUILD1 +$BUILD2 +cp bb2.ml bb.ml +$BUILD1 -verbose 0 +$BUILD2 +cp bb3.ml bb.ml +$BUILD1 -verbose 0 +$BUILD2 +svn revert bb.ml diff --git a/ocamlbuild/test/test8/a.ml b/ocamlbuild/test/test8/a.ml new file mode 100644 index 000000000..35ac74996 --- /dev/null +++ b/ocamlbuild/test/test8/a.ml @@ -0,0 +1 @@ +print_endline Myconfig.version;; diff --git a/ocamlbuild/test/test8/myocamlbuild.ml b/ocamlbuild/test/test8/myocamlbuild.ml new file mode 100644 index 000000000..4a8ae9d68 --- /dev/null +++ b/ocamlbuild/test/test8/myocamlbuild.ml @@ -0,0 +1,9 @@ +open Ocamlbuild_pack;; +open Ocamlbuild_plugin;; +let version = "0.1";; +file_rule "myconfig.ml" + ~prod:"myconfig.ml" + ~cache:(fun _ -> version) + begin fun _ oc -> + Printf.fprintf oc "let version = %S;;\n%!" version + end;; diff --git a/ocamlbuild/test/test8/test.sh b/ocamlbuild/test/test8/test.sh new file mode 100755 index 000000000..80fc7197c --- /dev/null +++ b/ocamlbuild/test/test8/test.sh @@ -0,0 +1,11 @@ +#!/bin/sh +cd `dirname $0` +set -e +set -x +CMDOPTS="" # -- command args +BUILD="../../_build/ocamlbuild.native a.byte a.native -no-skip -classic-display $@" +BUILD1="$BUILD $CMDOPTS" +BUILD2="$BUILD -verbose 0 -nothing-should-be-rebuilt $CMDOPTS" +rm -rf _build +$BUILD1 +$BUILD2 diff --git a/ocamlbuild/test/test9/dbgl b/ocamlbuild/test/test9/dbgl new file mode 100644 index 000000000..ac61a3d55 --- /dev/null +++ b/ocamlbuild/test/test9/dbgl @@ -0,0 +1,10 @@ +#load "unix.cma";; +#load "str.cma";; +#load "discard_printf.cmo";; +#load "debug.cmo";; +#load "bool.cmo";; +#load "glob_ast.cmo";; +#load "glob_lexer.cmo";; +#load "my_unix.cmo";; +#use "glob.ml";; +#install_printer print_is;; diff --git a/ocamlbuild/test/test9/test.sh b/ocamlbuild/test/test9/test.sh new file mode 100755 index 000000000..0feded208 --- /dev/null +++ b/ocamlbuild/test/test9/test.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e +set -x +cd `dirname $0`/../.. +./_build/ocamlbuild.native -quiet -build-dir _buildtest -no-links test/test9/testglob.native $@ +./_buildtest/test/test9/testglob.native diff --git a/ocamlbuild/test/test9/testglob.ml b/ocamlbuild/test/test9/testglob.ml new file mode 100644 index 000000000..e307a769c --- /dev/null +++ b/ocamlbuild/test/test9/testglob.ml @@ -0,0 +1,91 @@ +(* Testglob *) + +open Bool;; +open Glob;; + +let yep f x = + try + ignore (f x); + true + with + | _ -> false +;; + +let tests1 = [ + "\"hello\"", true; + "<hello>", true; + "<hel*lo>", true; + "<a> and <b> or <c>", true; + "<a> titi", false +];; + +let tests2 = [ + "<[a]>", ["a"], ["b"]; + "<[a-z]>", ["a";"e";"k";"z"], ["0";"A";"~"]; + "<[a-z][0-9]>", ["a0";"b9"], ["a00";"a0a";"b0a";"isduis";""]; + "<hello>", ["hello"], ["helli"]; + "\"hello\"", ["hello"], ["heidi"]; + "<*>", ["";"a";"ax"], []; + "<a*b>", ["ab";"acb";"axxxxxb";"ababbababb"], ["abx";"xxxxxab";"xab"]; + "<*.ml>", ["hello.ml";".ml"], ["ml"; ""; "toto.mli"]; + "<a>", ["a"], ["";"aa";"ba";"ab";"abaa"]; + "<ab>", ["ab"], ["";"abab";"aba";"abx"]; + "<ab?c>", ["abac";"abxc"], ["abab";"ababab";"ababa"]; + "<*ab?cd*>", ["123abecd345";"abccd";"abccd345";"ababcababccdab"], ["abcd";"aaaaabcdababcd"]; + "<*this*is*a*test*>", ["this is a test";"You know this is a test really";"thisisatest"], ["thisatest"]; + "<b*>", ["bxx";"bx"], ["aaab";""]; + "<*>", ["";"a";"aaa";"aaaaa"], []; + "<?>", ["a"],["";"aaa";"aaaaa"]; + "<{a,b}>", ["a";"b"],["";"aa";"ab";"ba";"bb";"c"]; + "<toto.{ml,mli}>", ["toto.ml";"toto.mli"],["toto.";"toto.mll"]; + "<{a,b}{c,[de]}{f,g}>", ["acf";"acg";"adf";"adg";"aef";"aeg";"bcf";"bcg";"bdf";"bdg";"bef";"beg"], + ["afg";"af";"aee"]; + "(<*.ml> or <*.mli>) and not \"hello.ml\"", + ["a.ml"; "b.ml"; "a.mli"], + ["hello.ml"; "a.mli.x"]; + "<*>", ["alpha";"beta"], ["alpha/beta";"gamma/delta"]; + "<alpha/**/beta>", ["alpha/beta";"alpha/gamma/beta";"alpha/gamma/delta/beta"], + ["alpha";"beta";"gamma/delta"]; + "<**/*.ml>", ["toto.ml";"toto/tata.ml";"alpha/gamma/delta/beta.ml"], + ["toto.mli"]; + "<toto/**>", ["toto/";"toto/tata";"toto/alpha/gamma/delta/beta.ml";"toto"], + ["toto2/tata"; "tata/titi"] +];; + + +let _ = + let times = 3 in + List.iter + begin fun (str, ast) -> + let ast' = yep Glob.parse str in + if ast <> ast' then + begin + Printf.printf "Globexp parsing failed for %S.\n%!" str; + exit 1 + end + else + Printf.printf "Globexp for %S OK\n%!" str + end + tests1; + List.iter + begin fun (gstr, yes, no) -> + let globber = Glob.parse gstr in + let check polarity = + List.iter + begin fun y -> + if Glob.eval globber y = polarity then + Printf.printf "Glob.eval %S %S = %b OK\n%!" gstr y polarity + else + begin + Printf.printf "Glob.eval %S %S = %b FAIL\n%!" gstr y (not polarity); + exit 1 + end + end + in + for k = 1 to times do + check true yes; + check false no + done + end + tests2 +;; |