# file : tests/update.testscript # license : MIT; see accompanying LICENSE file # Here we test both update and clean commands. # .include common.testscript config_cxx = [cmdline] cc config.cxx=$quote($recall($cxx.path) $cxx.config.mode, true) new += 2>! init += $config_cxx -d prj 2>! deinit += -d prj : single-pkg-cfg : { $new -C @cfg prj $config_cxx &prj/*** &prj-cfg/***; $* -d prj 2>>~%EOE%; %(mkdir|c\+\+|ld|ln) .+%{4} EOE $clean -d prj 2>>~%EOE%; %(rm|rmdir) .+%{3} EOE $deinit 2>>/"EOE" deinitializing in project $~/prj/ synchronizing: drop prj EOE } : multi-pkg-cfg : { $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/***; # Update. # $* -d prj/pkg1 2>>~%EOE%; # Default (cfg1). %(mkdir|c\+\+|ld|ln) .+%{4} EOE $* @cfg2 -d prj/pkg1 2>>~%EOE%; # By name (cfg2). %(mkdir|c\+\+|ld) .+%{3} EOE # @@ On Windows we for some reason also get a repeat: # # ln prj-cfg1\pkg1\pkg1\exe{pkg1} -> prj\pkg1\pkg1\ # $* --all -d prj 2>>~%EOE%; # All configs (and packages). in configuration @cfg1: %(mkdir|c\+\+|ld|ln|info:) .+%{5,6} in configuration @cfg2: %(mkdir|c\+\+|ld|info:) .+%{4} EOE # Clean. # $clean -d prj/pkg1 2>>~%EOE%; # Default (cfg1). %(rm|rmdir) .+%{3} EOE $clean @cfg2 -d prj/pkg1 2>>~%EOE%; # By name (cfg2). %(rm|rmdir) .+%{3} EOE $clean --all -d prj 2>>~%EOE%; # All configs (and packages). in configuration @cfg1: %(rm|rmdir|info:) .+%{4} in configuration @cfg2: %(rm|rmdir|info:) .+%{4} EOE $deinit 2>>/"EOE" deinitializing in project $~/prj/ deinitializing package pkg1 deinitializing package pkg2 synchronizing: drop pkg1 drop pkg2 EOE } : multi-default-cfg : { $new -t empty prj &prj/***; $new --package pkg1 -d prj; $new --package pkg2 -d prj; $init -C @cfg1 -d prj/pkg1 &prj-cfg1/***; $init -C @cfg2 -d prj/pkg2 --config-type host &prj-cfg2/***; # Update. # $* -d prj 2>>~%EOE%; in configuration @cfg1: %(mkdir|c\+\+|ld|ln) .+pkg1.+%{4} in configuration @cfg2: %(mkdir|c\+\+|ld|ln) .+pkg2.+%{4} EOE # Clean. # $clean -d prj 2>>~%EOE%; in configuration @cfg1: %(rm|rmdir) .+pkg1.+%{3} in configuration @cfg2: %(rm|rmdir) .+pkg2.+%{3} EOE $deinit 2>>/"EOE" deinitializing in project $~/prj/ in configuration @cfg2: synchronizing: drop pkg2 in configuration @cfg1: synchronizing: drop pkg1 EOE }