@@ -110,12 +110,42 @@ def test_update_single_package
110
110
# * using-adder - for this project
111
111
# ...and notably no test for adder, which must be disabled from the option override from above
112
112
assert_equal [ 'simple' , 'using-adder' ] , exes
113
+ }
114
+ update_with_option_on_and_build_with_uri_shorthand_syntax_and_exclude_from_override = -> {
115
+ prj . create_lists_from_default_template package : <<~PACK
116
+ CPMAddPackage(
117
+ URI gh:cpm-cmake/[email protected]
118
+ OPTIONS "ADDER_BUILD_TESTS ON"
119
+ EXCLUDE_FROM_ALL NO
120
+ )
121
+ PACK
122
+ assert_success prj . configure
123
+ assert_success prj . build
124
+
125
+ exe_dir = File . join ( prj . bin_dir , 'bin' )
126
+ assert File . directory? exe_dir
113
127
128
+ exes = Dir [ exe_dir + '/**/*' ] . filter {
129
+ # on multi-configuration generators (like Visual Studio) the executables will be in bin/<Config>
130
+ # also filter-out other artifacts like .pdb or .dsym
131
+ !File . directory? ( _1 ) && File . stat ( _1 ) . executable?
132
+ } . map {
133
+ # remove .exe extension if any (there will be one on Windows)
134
+ File . basename ( _1 , '.exe' )
135
+ } . sort
136
+
137
+ # we should end up with two executables
138
+ # * simple - the simple example from adder
139
+ # * using-adder - for this project
140
+ # ...and notably no test for adder, which must be disabled from the option override from above
141
+ assert_equal [ 'simple' , 'test-adding' , 'using-adder' ] , exes
114
142
}
115
143
144
+
116
145
create_with_commit_sha . ( )
117
146
update_to_version_1 . ( )
118
147
update_with_option_off_and_build . ( )
119
148
update_with_option_off_and_build_with_uri_shorthand_syntax . ( )
149
+ update_with_option_on_and_build_with_uri_shorthand_syntax_and_exclude_from_override . ( )
120
150
end
121
151
end
0 commit comments