diff --git a/test/4-describe-data-1-list.sh b/test/4-describe-data-1-list.sh index def3899..630b609 100755 --- a/test/4-describe-data-1-list.sh +++ b/test/4-describe-data-1-list.sh @@ -12,7 +12,8 @@ trap cleanup EXIT -if ! $DUB describe --compiler=$DC --data-list \ +if ! $DUB describe --compiler=$DC --filter-versions \ + --data-list \ '--data= target-type , target-path , target-name ' \ '--data= working-directory ' \ --data=main-source-file \ @@ -77,11 +78,8 @@ echo >> "$expected_file" # --data=versions echo "someVerIdent" >> "$expected_file" -echo "Have_describe_project" >> "$expected_file" -echo "Have_describe_dependency_1" >> "$expected_file" -echo "Have_describe_dependency_2" >> "$expected_file" -echo "Have_describe_dependency_3" >> "$expected_file" echo "anotherVerIdent" >> "$expected_file" +echo "Have_describe_dependency_3" >> "$expected_file" echo >> "$expected_file" # --data=debug-versions echo "someDebugVerIdent" >> "$expected_file" diff --git a/test/4-describe-data-2-dmd.sh b/test/4-describe-data-2-dmd.sh index 225537a..5120f1b 100755 --- a/test/4-describe-data-2-dmd.sh +++ b/test/4-describe-data-2-dmd.sh @@ -54,11 +54,8 @@ echo -n "'$CURR_DIR/describe-dependency-1/source/dummy.d' " >> "$expected_file" # --data=versions echo -n "-version=someVerIdent " >> "$expected_file" -echo -n "-version=Have_describe_project " >> "$expected_file" -echo -n "-version=Have_describe_dependency_1 " >> "$expected_file" -echo -n "-version=Have_describe_dependency_2 " >> "$expected_file" -echo -n "-version=Have_describe_dependency_3 " >> "$expected_file" echo -n "-version=anotherVerIdent " >> "$expected_file" +echo -n "-version=Have_describe_dependency_3 " >> "$expected_file" # --data=debug-versions echo -n "-debug=someDebugVerIdent " >> "$expected_file" echo -n "-debug=anotherDebugVerIdent " >> "$expected_file" diff --git a/test/describe-dependency-1/source/dummy.d b/test/describe-dependency-1/source/dummy.d index 8b13789..3c1514d 100644 --- a/test/describe-dependency-1/source/dummy.d +++ b/test/describe-dependency-1/source/dummy.d @@ -1 +1,2 @@ - +version (anotherVerIdent) {} +debug (anotherDebugVerIdent) {} diff --git a/test/describe-project/src/dummy.d b/test/describe-project/src/dummy.d index 8b13789..733017c 100644 --- a/test/describe-project/src/dummy.d +++ b/test/describe-project/src/dummy.d @@ -1 +1,3 @@ - +version (Have_describe_dependency_3) {} +version (someVerIdent) {} +debug (someDebugVerIdent) {} diff --git a/test/version-filters-diamond/.gitignore b/test/version-filters-diamond/.gitignore new file mode 100644 index 0000000..c09a597 --- /dev/null +++ b/test/version-filters-diamond/.gitignore @@ -0,0 +1,15 @@ +.dub +docs.json +__dummy.html +docs/ +issue1262-version-inheritance-diamond +issue1262-version-inheritance-diamond.so +issue1262-version-inheritance-diamond.dylib +issue1262-version-inheritance-diamond.dll +issue1262-version-inheritance-diamond.a +issue1262-version-inheritance-diamond.lib +issue1262-version-inheritance-diamond-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters-diamond/.no_build b/test/version-filters-diamond/.no_build new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-diamond/.no_build diff --git a/test/version-filters-diamond/.no_run b/test/version-filters-diamond/.no_run new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-diamond/.no_run diff --git a/test/version-filters-diamond/.no_test b/test/version-filters-diamond/.no_test new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-diamond/.no_test diff --git a/test/version-filters-diamond/daughter/.gitignore b/test/version-filters-diamond/daughter/.gitignore new file mode 100644 index 0000000..f190acb --- /dev/null +++ b/test/version-filters-diamond/daughter/.gitignore @@ -0,0 +1,14 @@ +.dub +docs.json +__dummy.html +docs/ +daughter.so +daughter.dylib +daughter.dll +daughter.a +daughter.lib +daughter-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters-diamond/daughter/dub.sdl b/test/version-filters-diamond/daughter/dub.sdl new file mode 100644 index 0000000..9562cc5 --- /dev/null +++ b/test/version-filters-diamond/daughter/dub.sdl @@ -0,0 +1,6 @@ +name "daughter" +versions "Daughter" +debugVersions "dDaughter" +x:versionFilters "Daughter" "Parent" +x:debugVersionFilters "dDaughter" "dParent" +dependency "diamond" path="../diamond" diff --git a/test/version-filters-diamond/daughter/source/dummy.d b/test/version-filters-diamond/daughter/source/dummy.d new file mode 100644 index 0000000..4006f06 --- /dev/null +++ b/test/version-filters-diamond/daughter/source/dummy.d @@ -0,0 +1,15 @@ +module daughter.dummy; + +version (Parent) {} else static assert(0, "Expected Parent to be set"); // via dependency +version (Daughter) {} else static assert(0, "Expected Daughter to be set"); // local +version (Son) static assert(0, "Expected Son to not be set"); +version (Diamond) static assert(0, "Expected Diamond to not be set"); + +debug (dParent) {} else static assert(0, "Expected dParent to be set"); // via dependency +debug (dDaughter) {} else static assert(0, "Expected dDaughter to be set"); // local +debug (dSon) {} else static assert(0, "Expected dSon to be set"); // via diamond dependency +debug (dDiamond) static assert(0, "Expected dDiamond to not be set"); + +version (Have_daughter) static assert(0, "Expected Have_daughter to not be set"); +version (Have_son) static assert(0, "Expected Have_son to not be set"); +version (Have_diamond) static assert(0, "Expected Have_diamond to not be set"); diff --git a/test/version-filters-diamond/diamond/.gitignore b/test/version-filters-diamond/diamond/.gitignore new file mode 100644 index 0000000..c359a73 --- /dev/null +++ b/test/version-filters-diamond/diamond/.gitignore @@ -0,0 +1,14 @@ +.dub +docs.json +__dummy.html +docs/ +diamond.so +diamond.dylib +diamond.dll +diamond.a +diamond.lib +diamond-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters-diamond/diamond/dub.sdl b/test/version-filters-diamond/diamond/dub.sdl new file mode 100644 index 0000000..afdb272 --- /dev/null +++ b/test/version-filters-diamond/diamond/dub.sdl @@ -0,0 +1,3 @@ +name "diamond" +versions "Diamond" +debugVersions "dDiamond" diff --git a/test/version-filters-diamond/diamond/source/dummy.d b/test/version-filters-diamond/diamond/source/dummy.d new file mode 100644 index 0000000..3c1fca5 --- /dev/null +++ b/test/version-filters-diamond/diamond/source/dummy.d @@ -0,0 +1,26 @@ +module diamond.dummy; + +template hasVersion(string v) +{ + mixin("version ("~v~") enum hasVersion = true; else enum hasVersion = false;"); +} + +template hasDebugVersion(string v) +{ + mixin("debug ("~v~") enum hasDebugVersion = true; else enum hasDebugVersion = false;"); +} + +// checking inference here +version (Parent) {} else static assert(0, "Expected Parent to be set"); +version (Daughter) {} else static assert(0, "Expected Daughter to be set"); +static assert(!hasVersion!"Son"); +static assert(!hasVersion!"Diamond"); + +debug (dParent) {} else static assert(0, "Expected dParent to be set"); +static assert(!hasDebugVersion!"dDaughter"); +debug (dSon) {} else static assert(0, "Expected dSon to be set"); +static assert(!hasDebugVersion!"dDiamond"); + +static assert(!hasVersion!"Have_daughter"); +static assert(!hasVersion!"Have_son"); +static assert(!hasVersion!"Have_diamond"); diff --git a/test/version-filters-diamond/dub.sdl b/test/version-filters-diamond/dub.sdl new file mode 100644 index 0000000..51295fd --- /dev/null +++ b/test/version-filters-diamond/dub.sdl @@ -0,0 +1,7 @@ +name "version-filters-diamond" +versions "Parent" +debugVersions "dParent" +x:versionFilters "Parent" +x:debugVersionFilters "dParent" +dependency "daughter" path="daughter" +dependency "son" path="son" diff --git a/test/version-filters-diamond/son/.gitignore b/test/version-filters-diamond/son/.gitignore new file mode 100644 index 0000000..601a33b --- /dev/null +++ b/test/version-filters-diamond/son/.gitignore @@ -0,0 +1,14 @@ +.dub +docs.json +__dummy.html +docs/ +son.so +son.dylib +son.dll +son.a +son.lib +son-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters-diamond/son/dub.sdl b/test/version-filters-diamond/son/dub.sdl new file mode 100644 index 0000000..3e0a630 --- /dev/null +++ b/test/version-filters-diamond/son/dub.sdl @@ -0,0 +1,6 @@ +name "son" +versions "Son" +debugVersions "dSon" +x:versionFilters "Son" +x:debugVersionFilters "dSon" +dependency "diamond" path="../diamond" diff --git a/test/version-filters-diamond/son/source/dummy.d b/test/version-filters-diamond/son/source/dummy.d new file mode 100644 index 0000000..7e56da0 --- /dev/null +++ b/test/version-filters-diamond/son/source/dummy.d @@ -0,0 +1,15 @@ +module son.dummy; + +version (Parent) {} else static assert(0, "Expected Parent to be set"); // via dependency +version (Daughter) {} else static assert(0, "Expected Daughter to not be set"); // via diamond dependency +version (Son) {} else static assert(0, "Expected Son to be set"); // local +version (Diamond) static assert(0, "Expected Diamond to not be set"); + +debug (dParent) {} else static assert(0, "Expected dParent to be set"); // via dependency +debug (dDaughter) static assert(0, "Expected dDaughter to not be set"); // via diamond dependency +debug (dSon) {} else static assert(0, "Expected dSon to be set"); // local +debug (dDiamond) static assert(0, "Expected dDiamond to not be set"); + +version (Have_daughter) static assert(0, "Expected Have_daughter to not be set"); +version (Have_son) static assert(0, "Expected Have_son to not be set"); +version (Have_diamond) static assert(0, "Expected Have_diamond to not be set"); diff --git a/test/version-filters-diamond/source/app.d b/test/version-filters-diamond/source/app.d new file mode 100644 index 0000000..2f19e5c --- /dev/null +++ b/test/version-filters-diamond/source/app.d @@ -0,0 +1,17 @@ +version (Parent) {} else static assert(0, "Expected Parent to be set"); // local +version (Daughter) {} else static assert(0, "Expected Daughter to not be set"); // via dependency +version (Son) {} else static assert(0, "Expected Son to not be set"); // via dependency +version (Diamond) static assert(0, "Expected Diamond to not be set"); // unused by dependencies + +debug (dParent) {} else static assert(0, "Expected dParent to be set"); // local +debug (dDaughter) {} else static assert(0, "Expected dDaughter to be set"); // via dependency +debug (dSon) {} else static assert(0, "Expected dSon to not be set"); // via dependency +debug (dDiamond) static assert(0, "Expected dDiamond to not be set"); // unused by dependencies + +version (Have_daugther) static assert(0, "Expected Have_daugther to not be set"); +version (Have_son) static assert(0, "Expected Have_son to not be set"); +version (Have_diamond) static assert(0, "Expected Have_diamond to not be set"); + +void main() +{ +} diff --git a/test/version-filters-none/.gitignore b/test/version-filters-none/.gitignore new file mode 100644 index 0000000..c09a597 --- /dev/null +++ b/test/version-filters-none/.gitignore @@ -0,0 +1,15 @@ +.dub +docs.json +__dummy.html +docs/ +issue1262-version-inheritance-diamond +issue1262-version-inheritance-diamond.so +issue1262-version-inheritance-diamond.dylib +issue1262-version-inheritance-diamond.dll +issue1262-version-inheritance-diamond.a +issue1262-version-inheritance-diamond.lib +issue1262-version-inheritance-diamond-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters-none/.no_build b/test/version-filters-none/.no_build new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-none/.no_build diff --git a/test/version-filters-none/.no_run b/test/version-filters-none/.no_run new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-none/.no_run diff --git a/test/version-filters-none/.no_test b/test/version-filters-none/.no_test new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-none/.no_test diff --git a/test/version-filters-none/dub.sdl b/test/version-filters-none/dub.sdl new file mode 100644 index 0000000..5ad696c --- /dev/null +++ b/test/version-filters-none/dub.sdl @@ -0,0 +1,4 @@ +name "version-filters-none" +versions "Parent" +debugVersions "dParent" +x:versionFilters "none" diff --git a/test/version-filters-none/source/app.d b/test/version-filters-none/source/app.d new file mode 100644 index 0000000..cafe4cf --- /dev/null +++ b/test/version-filters-none/source/app.d @@ -0,0 +1,6 @@ +version (Parent) static assert(0, "Expected Parent to not be set"); +debug (dParent) static assert(0, "Expected dParent to not be set"); + +void main() +{ +} diff --git a/test/version-filters-source-dep/.gitignore b/test/version-filters-source-dep/.gitignore new file mode 100644 index 0000000..c09a597 --- /dev/null +++ b/test/version-filters-source-dep/.gitignore @@ -0,0 +1,15 @@ +.dub +docs.json +__dummy.html +docs/ +issue1262-version-inheritance-diamond +issue1262-version-inheritance-diamond.so +issue1262-version-inheritance-diamond.dylib +issue1262-version-inheritance-diamond.dll +issue1262-version-inheritance-diamond.a +issue1262-version-inheritance-diamond.lib +issue1262-version-inheritance-diamond-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters-source-dep/.no_build b/test/version-filters-source-dep/.no_build new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-source-dep/.no_build diff --git a/test/version-filters-source-dep/.no_run b/test/version-filters-source-dep/.no_run new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-source-dep/.no_run diff --git a/test/version-filters-source-dep/.no_test b/test/version-filters-source-dep/.no_test new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters-source-dep/.no_test diff --git a/test/version-filters-source-dep/dub.sdl b/test/version-filters-source-dep/dub.sdl new file mode 100644 index 0000000..73d4834 --- /dev/null +++ b/test/version-filters-source-dep/dub.sdl @@ -0,0 +1,5 @@ +name "version-filters-source-dep" +versions "Parent" +debugVersions "dParent" +x:versionFilters "none" +dependency "source-dep" path="source-dep" diff --git a/test/version-filters-source-dep/source-dep/dub.sdl b/test/version-filters-source-dep/source-dep/dub.sdl new file mode 100644 index 0000000..d9b7c63 --- /dev/null +++ b/test/version-filters-source-dep/source-dep/dub.sdl @@ -0,0 +1,7 @@ +name "source-dep" +versions "SourceDep" +debugVersions "dSourceDep" +# filter of sourceOnly libs are merged with dependents +x:versionFilters "SourceDep" +x:debugVersionFilters "dSourceDep" +targetType "sourceLibrary" diff --git a/test/version-filters-source-dep/source-dep/source/dummy.d b/test/version-filters-source-dep/source-dep/source/dummy.d new file mode 100644 index 0000000..daee233 --- /dev/null +++ b/test/version-filters-source-dep/source-dep/source/dummy.d @@ -0,0 +1,7 @@ +module sourcedep.dummy; + +version (Parent) static assert(0, "Expected Parent to not be set"); +version (SourceDep) {} else static assert(0, "Expected SourceDep to be set"); + +debug (dParent) static assert(0, "Expected dParent to not be set"); +debug (dSourceDep) {} else static assert(0, "Expected dSourceDep to be set"); diff --git a/test/version-filters-source-dep/source/app.d b/test/version-filters-source-dep/source/app.d new file mode 100644 index 0000000..13de8f5 --- /dev/null +++ b/test/version-filters-source-dep/source/app.d @@ -0,0 +1,9 @@ +version (Parent) static assert(0, "Expected Parent to not be set"); +version (SourceDep) {} else static assert(0, "Expected SourceDep to be set"); + +debug (dParent) static assert(0, "Expected dParent to not be set"); +debug (dSourceDep) {} else static assert(0, "Expected dSourceDep to be set"); + +void main() +{ +} diff --git a/test/version-filters.sh b/test/version-filters.sh new file mode 100755 index 0000000..e92f3fa --- /dev/null +++ b/test/version-filters.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +. $(dirname "${BASH_SOURCE[0]}")/common.sh + +$DUB build --root="$CURR_DIR/version-filters" --filter-versions +$DUB build --root="$CURR_DIR/version-filters-diamond" --filter-versions +$DUB build --root="$CURR_DIR/version-filters-source-dep" --filter-versions +$DUB build --root="$CURR_DIR/version-filters-none" --filter-versions diff --git a/test/version-filters/.gitignore b/test/version-filters/.gitignore new file mode 100644 index 0000000..c09a597 --- /dev/null +++ b/test/version-filters/.gitignore @@ -0,0 +1,15 @@ +.dub +docs.json +__dummy.html +docs/ +issue1262-version-inheritance-diamond +issue1262-version-inheritance-diamond.so +issue1262-version-inheritance-diamond.dylib +issue1262-version-inheritance-diamond.dll +issue1262-version-inheritance-diamond.a +issue1262-version-inheritance-diamond.lib +issue1262-version-inheritance-diamond-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters/.no_build b/test/version-filters/.no_build new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters/.no_build diff --git a/test/version-filters/.no_run b/test/version-filters/.no_run new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters/.no_run diff --git a/test/version-filters/.no_test b/test/version-filters/.no_test new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/version-filters/.no_test diff --git a/test/version-filters/daughter/.gitignore b/test/version-filters/daughter/.gitignore new file mode 100644 index 0000000..f190acb --- /dev/null +++ b/test/version-filters/daughter/.gitignore @@ -0,0 +1,14 @@ +.dub +docs.json +__dummy.html +docs/ +daughter.so +daughter.dylib +daughter.dll +daughter.a +daughter.lib +daughter-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters/daughter/dub.sdl b/test/version-filters/daughter/dub.sdl new file mode 100644 index 0000000..7eb94da --- /dev/null +++ b/test/version-filters/daughter/dub.sdl @@ -0,0 +1,5 @@ +name "daughter" +versions "Daughter" +debugVersions "dDaughter" +x:versionFilters "Daughter" "Parent" +x:debugVersionFilters "dDaughter" "dParent" diff --git a/test/version-filters/daughter/source/dummy.d b/test/version-filters/daughter/source/dummy.d new file mode 100644 index 0000000..7295801 --- /dev/null +++ b/test/version-filters/daughter/source/dummy.d @@ -0,0 +1,12 @@ +module daughter.dummy; + +version (Parent) {} else static assert(0, "Expected Parent to be set"); +version (Daughter) {} else static assert(0, "Expected Daughter to be set"); +version (Son) static assert(0, "Expected Son to not be set"); + +debug (dParent) {} else static assert(0, "Expected dParent to be set"); +debug (dDaughter) {} else static assert(0, "Expected dDaughter to be set"); +debug (dSon) static assert(0, "Expected dSon to not be set"); + +version (Have_daughter) static assert(0, "Expected Have_daughter to not be set"); +version (Have_son) static assert(0, "Expected Have_son to not be set"); diff --git a/test/version-filters/dub.sdl b/test/version-filters/dub.sdl new file mode 100644 index 0000000..9f79da4 --- /dev/null +++ b/test/version-filters/dub.sdl @@ -0,0 +1,7 @@ +name "version-filters" +versions "Parent" +debugVersions "dParent" +x:versionFilters "Parent" +x:debugVersionFilters "dParent" +dependency "daughter" path="daughter" +dependency "son" path="son" diff --git a/test/version-filters/son/.gitignore b/test/version-filters/son/.gitignore new file mode 100644 index 0000000..601a33b --- /dev/null +++ b/test/version-filters/son/.gitignore @@ -0,0 +1,14 @@ +.dub +docs.json +__dummy.html +docs/ +son.so +son.dylib +son.dll +son.a +son.lib +son-test-* +*.exe +*.o +*.obj +*.lst diff --git a/test/version-filters/son/dub.sdl b/test/version-filters/son/dub.sdl new file mode 100644 index 0000000..e851dd6 --- /dev/null +++ b/test/version-filters/son/dub.sdl @@ -0,0 +1,5 @@ +name "son" +versions "Son" +debugVersions "dSon" +x:versionFilters "Son" +x:debugVersionFilters "dSon" diff --git a/test/version-filters/son/source/dummy.d b/test/version-filters/son/source/dummy.d new file mode 100644 index 0000000..0cfbcd3 --- /dev/null +++ b/test/version-filters/son/source/dummy.d @@ -0,0 +1,12 @@ +module son.dummy; + +version (Parent) static assert(0, "Expected Parent to not be set"); +version (Daughter) static assert(0, "Expected Daughter to not be set"); +version (Son) {} else static assert(0, "Expected Son to be set"); + +debug (dParent) static assert(0, "Expected dParent to not be set"); +debug (dDaughter) static assert(0, "Expected dDaughter to not be set"); +debug (dSon) {} else static assert(0, "Expected dSon to be set"); + +version (Have_daughter) static assert(0, "Expected Have_daughter to not be set"); +version (Have_son) static assert(0, "Expected Have_son to not be set"); diff --git a/test/version-filters/source/app.d b/test/version-filters/source/app.d new file mode 100644 index 0000000..e674170 --- /dev/null +++ b/test/version-filters/source/app.d @@ -0,0 +1,14 @@ +version (Parent) {} else static assert(0, "Expected Parent to be set"); // local +version (Daughter) {} else static assert(0, "Expected Daughter to be set"); // via dependency +version (Son) {} else static assert(0, "Expected Son to be set"); // via dependency + +debug (dParent) {} else static assert(0, "Expected dParent to be set"); // local +debug (dDaughter) {} else static assert(0, "Expected dDaughter to be set"); // via dependency +debug (dSon) {} else static assert(0, "Expected dSon to be set"); // via dependency + +version (Have_daugther) static assert(0, "Expected Have_daugther to not be set"); +version (Have_son) static assert(0, "Expected Have_son to not be set"); + +void main() +{ +}