Skip to content

Commit 3cc17fc

Browse files
rtboWebFreak001
authored andcommitted
Fix failure of test suite on POSIX
failure due to change of escaping of posix paths in phobos
1 parent 90fc0d1 commit 3cc17fc

3 files changed

Lines changed: 41 additions & 15 deletions

File tree

test/4-describe-data-2-dmd.sh

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,12 @@ fi
3434

3535
# Create the expected output path file to compare against.
3636
expected_file="$CURR_DIR/expected-describe-data-2-dmd-output"
37+
38+
# check if escaping is required
39+
. "$CURR_DIR/4-describe-data-check-escape"
40+
3741
# --data=main-source-file
38-
echo -n "'$CURR_DIR/describe-project/src/dummy.d' " > "$expected_file"
42+
echo -n "$(escaped "$CURR_DIR/describe-project/src/dummy.d") " > "$expected_file"
3943
# --data=dflags
4044
echo -n "--some-dflag " >> "$expected_file"
4145
echo -n "--another-dflag " >> "$expected_file"
@@ -46,12 +50,12 @@ echo -n "-L--another-lflag " >> "$expected_file"
4650
echo -n "-L-lsomelib " >> "$expected_file"
4751
echo -n "-L-lanotherlib " >> "$expected_file"
4852
# --data=linker-files
49-
echo -n "'$CURR_DIR/describe-dependency-3/libdescribe-dependency-3.a' " >> "$expected_file"
50-
echo -n "'$CURR_DIR/describe-project/some.a' " >> "$expected_file"
51-
echo -n "'$CURR_DIR/describe-dependency-1/dep.a' " >> "$expected_file"
53+
echo -n "$(escaped "$CURR_DIR/describe-dependency-3/libdescribe-dependency-3.a") " >> "$expected_file"
54+
echo -n "$(escaped "$CURR_DIR/describe-project/some.a") " >> "$expected_file"
55+
echo -n "$(escaped "$CURR_DIR/describe-dependency-1/dep.a") " >> "$expected_file"
5256
# --data=source-files
53-
echo -n "'$CURR_DIR/describe-project/src/dummy.d' " >> "$expected_file"
54-
echo -n "'$CURR_DIR/describe-dependency-1/source/dummy.d' " >> "$expected_file"
57+
echo -n "$(escaped "$CURR_DIR/describe-project/src/dummy.d") " >> "$expected_file"
58+
echo -n "$(escaped "$CURR_DIR/describe-dependency-1/source/dummy.d") " >> "$expected_file"
5559
# --data=versions
5660
echo -n "-version=someVerIdent " >> "$expected_file"
5761
echo -n "-version=anotherVerIdent " >> "$expected_file"
@@ -60,16 +64,16 @@ echo -n "-version=Have_describe_dependency_3 " >> "$expected_file"
6064
echo -n "-debug=someDebugVerIdent " >> "$expected_file"
6165
echo -n "-debug=anotherDebugVerIdent " >> "$expected_file"
6266
# --data=import-paths
63-
echo -n "'-I$CURR_DIR/describe-project/src/' " >> "$expected_file"
64-
echo -n "'-I$CURR_DIR/describe-dependency-1/source/' " >> "$expected_file"
65-
echo -n "'-I$CURR_DIR/describe-dependency-2/some-path/' " >> "$expected_file"
66-
echo -n "'-I$CURR_DIR/describe-dependency-3/dep3-source/' " >> "$expected_file"
67+
echo -n "$(escaped "-I$CURR_DIR/describe-project/src/") " >> "$expected_file"
68+
echo -n "$(escaped "-I$CURR_DIR/describe-dependency-1/source/") " >> "$expected_file"
69+
echo -n "$(escaped "-I$CURR_DIR/describe-dependency-2/some-path/") " >> "$expected_file"
70+
echo -n "$(escaped "-I$CURR_DIR/describe-dependency-3/dep3-source/") " >> "$expected_file"
6771
# --data=string-import-paths
68-
echo -n "'-J$CURR_DIR/describe-project/views/' " >> "$expected_file"
69-
echo -n "'-J$CURR_DIR/describe-dependency-2/some-extra-string-import-path/' " >> "$expected_file"
70-
echo -n "'-J$CURR_DIR/describe-dependency-3/dep3-string-import-path/' " >> "$expected_file"
72+
echo -n "$(escaped "-J$CURR_DIR/describe-project/views/") " >> "$expected_file"
73+
echo -n "$(escaped "-J$CURR_DIR/describe-dependency-2/some-extra-string-import-path/") " >> "$expected_file"
74+
echo -n "$(escaped "-J$CURR_DIR/describe-dependency-3/dep3-string-import-path/") " >> "$expected_file"
7175
# --data=import-files
72-
echo -n "'$CURR_DIR/describe-dependency-2/some-path/dummy.d' " >> "$expected_file"
76+
echo -n "$(escaped "$CURR_DIR/describe-dependency-2/some-path/dummy.d") " >> "$expected_file"
7377
# --data=options
7478
echo -n "-debug " >> "$expected_file"
7579
# releaseMode is not included, even though it's specified, because the requireContracts requirement drops it

test/4-describe-data-3-zero-delim.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,17 @@ if ! diff -b -B "$temp_file_normal" "$temp_file_zero_delim"; then
111111
die $LINENO 'The null-delimited dmd-style --data=versions did not match the expected output!'
112112
fi
113113

114+
# check if escaping is required
115+
. "$CURR_DIR/4-describe-data-check-escape"
116+
114117
# Test dmd-style --data=source-files
115118
if ! $DUB describe --compiler=$DC --data=source-files \
116119
> "$temp_file_normal"; then
117120
die $LINENO 'Printing dmd-style --data=source-files failed!'
118121
fi
119122

120123
if ! $DUB describe --compiler=$DC --data-0 --data=source-files \
121-
| xargs -0 printf "'%s' " > "$temp_file_zero_delim"; then
124+
| xargs -0 printf "$(escaped "%s") " > "$temp_file_zero_delim"; then
122125
die $LINENO 'Printing null-delimited dmd-style --data=source-files failed!'
123126
fi
124127

test/4-describe-data-check-escape

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
dmd_ver=$($DC --version | grep -Eo "v2\.[0-9][0-9][0-9].[0-9]")
2+
dmd_minor=$(echo $dmd_ver | grep -Eo "[0-9][0-9][0-9]")
3+
dmd_micro=${dmd_ver: -1}
4+
5+
if [[ $dmd_minor$dmd_micro < 1022 || "$CURR_DIR" =~ [[:space:]] ]]; then
6+
echo "Expecting escaped paths"
7+
escape=1
8+
else
9+
echo "Not expecting escaped paths"
10+
escape=0
11+
fi
12+
13+
function escaped {
14+
if [ $escape -eq 1 ]; then
15+
echo -n "'$1'"
16+
else
17+
echo -n "$1"
18+
fi
19+
}

0 commit comments

Comments
 (0)