diff options
Diffstat (limited to 'tests/test.testscript')
-rw-r--r-- | tests/test.testscript | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/tests/test.testscript b/tests/test.testscript new file mode 100644 index 0000000..dec9177 --- /dev/null +++ b/tests/test.testscript @@ -0,0 +1,106 @@ +# file : tests/test.testscript +# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +.include common.testscript + +cxx = cc config.cxx="$recall($cxx.path)" + +new += 2>! +init += cc "config.cxx=$config.cxx" -d prj 2>! +deinit += -d prj + +: single-pkg-cfg +: +{ + $new -C @cfg prj $cxx &prj/*** &prj-cfg/***; + + $* -d prj 2>>~%EOE%; + %(mkdir|c\+\+|ld|test) .+%{4} + EOE + + $deinit 2>>/"EOE" + deinitializing in project $~/prj/ + synchronizing: + drop prj + EOE +} + +: multi-pkg-cfg +: +: Here we will also test recursively. +: +{ + $new -t empty prj &prj/***; + + $new --package pkg1 -d prj; + $new --package pkg2 -d prj; + + $init -C @cfg1 &prj-cfg1/***; + $init -C @cfg2 &prj-cfg2/***; + + $new -t lib libprj &libprj/***; + + cat <<EOI >+prj/repositories.manifest; + : + role: prerequisite + location: ../libprj + type: dir + EOI + + cat <<EOI >+prj/pkg1/manifest; + depends: libprj + EOI + + sed -i -e 's/^(#import .+)$/import libs += libprj%lib{prj}/' \ + prj/pkg1/pkg1/buildfile; + + cat <<EOI >=prj/pkg1/pkg1/pkg1.cxx; + #include <iostream> + + #include <libprj/prj.hxx> + + using namespace std; + + int main (int argc, char* argv[]) + { + if (argc < 2) + { + cerr << "error: missing name" << endl; + return 1; + } + + prj::say_hello (cout, argv[1]); + } + EOI + + cat <<EOI >+prj/pkg2/manifest; + tags: c++ + EOI + + $* -d prj/pkg2 2>>/~"%EOE%"; # Default (cfg1). + fetching dir:$~/libprj \(prerequisite of dir:$~/prj\) + synchronizing: + % new libprj.+ \\\(required by pkg1\\\)% + % upgrade pkg1.+19700101000000#1% + % upgrade pkg2.+19700101000000#1% + %\(mkdir|c\\+\\+|ld|test\) .+%{4} + EOE + + $* @cfg2 -d prj/pkg2 2>>/~"%EOE%"; # By name (cfg2). + fetching dir:$~/libprj \(prerequisite of dir:$~/prj\) + synchronizing: + % new libprj.+ \\\(required by pkg1\\\)% + % upgrade pkg1.+19700101000000#1% + % upgrade pkg2.+19700101000000#1% + %\(mkdir|c\\+\\+|ld|test\) .+%{4} + EOE + + $* -a --recursive -d prj/pkg1 2>>~%EOE% # All configs recursive. + in configuration @cfg1: + %(mkdir|version\.in|c\+\+|ld|test) .+%{12} + + in configuration @cfg2: + %(mkdir|version\.in|c\+\+|ld|test) .+%{12} + EOE +} |