diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2022-07-19 20:20:47 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2022-07-20 13:48:26 +0300 |
commit | ddafa0f3475fe532a66879b807b0a8f47ecb201e (patch) | |
tree | 569a72699c810c9157c7ba1a6465d1af839017f1 /tests | |
parent | 03cb180e90129ef3435dc8ad81deff1810a5c5bf (diff) |
Fail if no module specified for being created configuration
Diffstat (limited to 'tests')
-rw-r--r-- | tests/config.testscript | 20 | ||||
-rw-r--r-- | tests/init.testscript | 159 | ||||
-rw-r--r-- | tests/new.testscript | 20 | ||||
-rw-r--r-- | tests/status.testscript | 2 | ||||
-rw-r--r-- | tests/sync.testscript | 6 |
5 files changed, 138 insertions, 69 deletions
diff --git a/tests/config.testscript b/tests/config.testscript index b02a2b2..17cfcb1 100644 --- a/tests/config.testscript +++ b/tests/config.testscript @@ -184,6 +184,22 @@ deinit += -d prj created configuration $~/cfg/ 1 target default,forwarded,auto-synchronized EOE } + + : no-module + { + $clone_root_prj; + + $* create @cfg 2>>EOE != 0; + error: no module(s) specified for configuration to be created + info: for example, for C/C++ configuration specify 'cc' + info: use '--' to create configuration without modules + info: for example: bdep config create ... -- + EOE + + $* create @cfg -- 2>>/"EOE" &prj-cfg/*** + created configuration @cfg $~/prj-cfg/ 1 target default,forwarded,auto-synchronized + EOE + } } : add @@ -257,8 +273,8 @@ deinit += -d prj { $clone_root_prj; - $* create @cfg &prj-cfg/*** 2>!; - $* create --config-type host @host-cfg &prj-host-cfg/*** 2>!; + $* create @cfg -- &prj-cfg/*** 2>!; + $* create --config-type host @host-cfg -- &prj-host-cfg/*** 2>!; $* link @cfg @host-cfg 2>!; diff --git a/tests/init.testscript b/tests/init.testscript index 593d265..6cba76d 100644 --- a/tests/init.testscript +++ b/tests/init.testscript @@ -16,92 +16,126 @@ deinit += -d prj { +$clone_prj - +cat <<EOI >+prj/manifest - depends: libprj - EOI - - : cfg-pkg-args + : with-dependency : { - $clone_prj; + +$clone_prj - $* -C @cfg $config_cxx 'config.cc.poptions=-DTEST' -- '?sys:libprj/*' 2>>/~"%EOE%" &prj-cfg/***; - initializing in project $~/prj/ - created configuration @cfg $~/prj-cfg/ 1 target default,forwarded,auto-synchronized - synchronizing: - % configure sys:libprj.*% - % new prj.+19700101000000% - EOE + +cat <<EOI >+prj/manifest + depends: libprj + EOI - sed -n -e 's/^config.cc.poptions = (.+)$/\1/p' prj-cfg/build/config.build \ - >'-DTEST'; + : cfg-pkg-args + : + { + $clone_prj; - $status >'prj configured 0.1.0-a.0.19700101000000'; + $* -C @cfg $config_cxx 'config.cc.poptions=-DTEST' -- '?sys:libprj/*' 2>>/~"%EOE%" &prj-cfg/***; + initializing in project $~/prj/ + created configuration @cfg $~/prj-cfg/ 1 target default,forwarded,auto-synchronized + synchronizing: + % configure sys:libprj.*% + % new prj.+19700101000000% + EOE - $build prj/ 2>>~%EOE%; - %(mkdir|c\+\+|ld|ln) .+%{4} - EOE + sed -n -e 's/^config.cc.poptions = (.+)$/\1/p' prj-cfg/build/config.build \ + >'-DTEST'; - prj/prj/prj 'testscript' >'Hello, testscript!'; # Make sure is forwarded. + $status >'prj configured 0.1.0-a.0.19700101000000'; - $build prj-cfg/prj/ 2>>/EOE; - info: prj-cfg/dir{prj/} is up to date - EOE + $build prj/ 2>>~%EOE%; + %(mkdir|c\+\+|ld|ln) .+%{4} + EOE - $build 'clean:' prj/ 2>>~%EOE%; - %rm .+%{3} - EOE + prj/prj/prj 'testscript' >'Hello, testscript!'; # Make sure is forwarded. - $deinit 2>>/"EOE" - deinitializing in project $~/prj/ - synchronizing: - drop prj - drop libprj - EOE - } + $build prj-cfg/prj/ 2>>/EOE; + info: prj-cfg/dir{prj/} is up to date + EOE - : cfg-pkg-args-sep - : - { - $clone_prj; + $build 'clean:' prj/ 2>>~%EOE%; + %rm .+%{3} + EOE - $* -C @cfg -- $config_cxx 'config.cc.poptions=-DTEST' -- '?sys:libprj/*' 2>>/~"%EOE%" &prj-cfg/***; - initializing in project $~/prj/ - created configuration @cfg $~/prj-cfg/ 1 target default,forwarded,auto-synchronized - synchronizing: - % configure sys:libprj.*% - % new prj.+19700101000000% - EOE + $deinit 2>>/"EOE" + deinitializing in project $~/prj/ + synchronizing: + drop prj + drop libprj + EOE + } - sed -n -e 's/^config.cc.poptions = (.+)$/\1/p' prj-cfg/build/config.build \ - >'-DTEST'; + : cfg-pkg-args-sep + : + { + $clone_prj; + + $* -C @cfg -- $config_cxx 'config.cc.poptions=-DTEST' -- '?sys:libprj/*' 2>>/~"%EOE%" &prj-cfg/***; + initializing in project $~/prj/ + created configuration @cfg $~/prj-cfg/ 1 target default,forwarded,auto-synchronized + synchronizing: + % configure sys:libprj.*% + % new prj.+19700101000000% + EOE + + sed -n -e 's/^config.cc.poptions = (.+)$/\1/p' prj-cfg/build/config.build \ + >'-DTEST'; + + $deinit 2>>/"EOE" + deinitializing in project $~/prj/ + synchronizing: + drop prj + drop libprj + EOE + } - $deinit 2>>/"EOE" - deinitializing in project $~/prj/ - synchronizing: - drop prj - drop libprj - EOE + : pkg-args + : + { + $clone_prj; + + # Note that not passing the C++ configuration arguments (see above) for + # the sake of testing, we may end up with the 'not built with default C++ + # compiler' error. To avoid this, we just make sure this is not a C++ + # project. + # + echo '' >=prj/build/root.build; + echo './: prj.cxx' >=prj/prj/buildfile; + + $* -C @cfg -- -- '?sys:libprj/*' 2>>/~"%EOE%" &prj-cfg/***; + initializing in project $~/prj/ + created configuration @cfg $~/prj-cfg/ 1 target default,forwarded,auto-synchronized + synchronizing: + % configure sys:libprj.*% + % new prj.+19700101000000% + EOE + + $deinit 2>>/"EOE" + deinitializing in project $~/prj/ + synchronizing: + drop prj + drop libprj + EOE + } } - : pkg-args + : no-module : { $clone_prj; - # Note that not passing the C++ configuration arguments (see above) for - # the sake of testing, we may end up with the 'not built with default C++ - # compiler' error. To avoid this, we just make sure this is not a C++ - # project. - # - echo '' >=prj/build/root.build; - echo './: prj.cxx' >=prj/prj/buildfile; + $* -C @cfg 2>>~%EOE% != 0; + %initializing in project .+% + error: no module(s) specified for configuration to be created + info: for example, for C/C++ configuration specify 'cc' + info: use '--' to create configuration without modules + info: for example: bdep init -C ... -- + EOE - $* -C @cfg -- -- '?sys:libprj/*' 2>>/~"%EOE%" &prj-cfg/***; + $* -C @cfg -- 2>>/~"%EOE%" &prj-cfg/***; initializing in project $~/prj/ created configuration @cfg $~/prj-cfg/ 1 target default,forwarded,auto-synchronized synchronizing: - % configure sys:libprj.*% % new prj.+19700101000000% EOE @@ -109,7 +143,6 @@ deinit += -d prj deinitializing in project $~/prj/ synchronizing: drop prj - drop libprj EOE } } diff --git a/tests/new.testscript b/tests/new.testscript index 9f7db17..b3cdae4 100644 --- a/tests/new.testscript +++ b/tests/new.testscript @@ -1869,4 +1869,24 @@ subdir=hello,no-subdir-source \ %(mkdir|c\+\+|ld|ln) .+%{4} EOE } + + : no-module + : + { + $* -C -@cfg prj 2>>EOE != 0; + error: no module(s) specified for configuration to be created + info: for example, for C/C++ configuration specify 'cc' + info: use '--' to create configuration without modules + info: for example: bdep new -C ... -- + EOE + + $* -C -@cfg prj -- 2>>/~"%EOE%" &prj/*** &prj-cfg/***; + created new executable project prj in $~/prj/ + created configuration @cfg $~/prj-cfg/ 1 target default,forwarded,auto-synchronized + synchronizing: + % new prj.+19700101000000% + EOE + + $status >'prj configured 0.1.0-a.0.19700101000000' + } } diff --git a/tests/status.testscript b/tests/status.testscript index 941bc14..10480ac 100644 --- a/tests/status.testscript +++ b/tests/status.testscript @@ -84,7 +84,7 @@ config += -d prj 2>! { $new -t empty prj &prj/***; - $config create @cfg &prj-cfg/***; + $config create @cfg -- &prj-cfg/***; $* 2>>~%EOE% != 0; %error: no packages in project .+% diff --git a/tests/sync.testscript b/tests/sync.testscript index 8fabf3b..463fa75 100644 --- a/tests/sync.testscript +++ b/tests/sync.testscript @@ -322,8 +322,8 @@ deinit += -d prj cp -rp ../libfix ./; cp -rp ../bar ./; - $config create -d libfoo @cfg libfoo-cfg &libfoo-cfg/***; - $config create -d libfoo --config-type host @host host &host/***; + $config create -d libfoo @cfg libfoo-cfg -- &libfoo-cfg/***; + $config create -d libfoo --config-type host @host host -- &host/***; $config link -d libfoo @cfg @host; @@ -359,7 +359,7 @@ deinit += -d prj depends: * libbuild2-baz EOI - $config create -d libfoo @cfg libfoo-cfg &libfoo-cfg/***; + $config create -d libfoo @cfg libfoo-cfg -- &libfoo-cfg/***; # Convert specific errors to infos as we expect them to appear. Not doing # so, makes bbot logs quite confusing. |