aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Laszlo Csomor <laszlocsomor@google.com>2018-08-13 00:30:57 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-13 00:32:18 -0700
commit08968ed56a0d5ff7f983edc7f5ebbfe85a72b8e0 (patch)
treea0e67a2bd765c2f716f8734c53176140b7741a1a
parentc0d4bb06d4227be27d5b4d4b04a4d5bb9ae3215d (diff)
Windows,tests: port configured_query_test
//src/test/shell/integration:configured_query_test now runs on Windows. See https://github.com/bazelbuild/bazel/issues/4292 Change-Id: I51990b2b1d675dabb4d9e82bbaf6c8c0f26c4baf Closes #5845. Change-Id: I51990b2b1d675dabb4d9e82bbaf6c8c0f26c4baf PiperOrigin-RevId: 208438117
-rw-r--r--src/test/shell/integration/BUILD6
-rwxr-xr-xsrc/test/shell/integration/configured_query_test.sh131
2 files changed, 87 insertions, 50 deletions
diff --git a/src/test/shell/integration/BUILD b/src/test/shell/integration/BUILD
index 0fd692a230..4b3b7f28f2 100644
--- a/src/test/shell/integration/BUILD
+++ b/src/test/shell/integration/BUILD
@@ -175,8 +175,10 @@ sh_test(
name = "configured_query_test",
size = "large",
srcs = ["configured_query_test.sh"],
- data = [":test-deps"],
- tags = ["no_windows"],
+ data = [
+ ":test-deps",
+ "@bazel_tools//tools/bash/runfiles",
+ ],
)
sh_test(
diff --git a/src/test/shell/integration/configured_query_test.sh b/src/test/shell/integration/configured_query_test.sh
index 1c53641387..df1b5eea91 100755
--- a/src/test/shell/integration/configured_query_test.sh
+++ b/src/test/shell/integration/configured_query_test.sh
@@ -18,33 +18,68 @@
# This tests the command line ui of configured query while
# ConfiguredTargetQueryTest tests its internal functionality.
-# Load the test setup defined in the parent directory
-CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-source "${CURRENT_DIR}/../integration_test_setup.sh" \
+# --- begin runfiles.bash initialization ---
+# Copy-pasted from Bazel's Bash runfiles library (tools/bash/runfiles/runfiles.bash).
+set -euo pipefail
+if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then
+ if [[ -f "$0.runfiles_manifest" ]]; then
+ export RUNFILES_MANIFEST_FILE="$0.runfiles_manifest"
+ elif [[ -f "$0.runfiles/MANIFEST" ]]; then
+ export RUNFILES_MANIFEST_FILE="$0.runfiles/MANIFEST"
+ elif [[ -f "$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then
+ export RUNFILES_DIR="$0.runfiles"
+ fi
+fi
+if [[ -f "${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then
+ source "${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash"
+elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then
+ source "$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \
+ "$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)"
+else
+ echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash"
+ exit 1
+fi
+# --- end runfiles.bash initialization ---
+
+source "$(rlocation "io_bazel/src/test/shell/integration_test_setup.sh")" \
|| { echo "integration_test_setup.sh not found!" >&2; exit 1; }
+case "$(uname -s | tr [:upper:] [:lower:])" in
+msys*|mingw*|cygwin*)
+ declare -r is_windows=true
+ ;;
+*)
+ declare -r is_windows=false
+ ;;
+esac
+
+if "$is_windows"; then
+ export MSYS_NO_PATHCONV=1
+ export MSYS2_ARG_CONV_EXCL="*"
+fi
+
add_to_bazelrc "build --package_path=%workspace%"
#### TESTS #############################################################
function test_basic_query() {
- rm -rf maple
- mkdir -p maple
- cat > maple/BUILD <<EOF
+ local -r pkg=$FUNCNAME
+ mkdir -p $pkg
+ cat > $pkg/BUILD <<EOF
sh_library(name='maple', deps=[':japanese'])
sh_library(name='japanese')
EOF
- bazel cquery 'deps(//maple)' > output 2>"$TEST_log" || fail "Expected success"
+ bazel cquery "deps(//$pkg:maple)" > output 2>"$TEST_log" || fail "Expected success"
- assert_contains "//maple:maple" output
- assert_contains "//maple:japanese" output
+ assert_contains "//$pkg:maple" output
+ assert_contains "//$pkg:japanese" output
}
function test_respects_selects() {
- rm -rf ash
- mkdir -p ash
- cat > ash/BUILD <<EOF
+ local -r pkg=$FUNCNAME
+ mkdir -p $pkg
+ cat > $pkg/BUILD <<EOF
sh_library(
name = "ash",
deps = select({
@@ -64,79 +99,83 @@ config_setting(
)
EOF
- bazel cquery 'deps(//ash)' --define species=excelsior > output \
+ bazel cquery "deps(//$pkg:ash)" --define species=excelsior > output \
2>"$TEST_log" || fail "Excepted success"
- assert_contains "//ash:foo" output
- assert_not_contains "//ash:bar" output
+ assert_contains "//$pkg:foo" output
+ assert_not_contains "//$pkg:bar" output
}
function test_empty_results_printed() {
- rm -rf redwood
- mkdir -p redwood
- cat > redwood/BUILD <<EOF
+ local -r pkg=$FUNCNAME
+ mkdir -p $pkg
+ cat > $pkg/BUILD <<EOF
sh_library(name='redwood', deps=[':sequoia',':sequoiadendron'])
sh_library(name='sequoia')
sh_library(name='sequoiadendron')
EOF
- bazel cquery 'somepath(//redwood:sequoia,//redwood:sequoiadendron)' \
+ bazel cquery "somepath(//$pkg:sequoia,//$pkg:sequoiadendron)" \
> output 2>"$TEST_log" || fail "Expected success"
expect_log "INFO: Empty query results"
- assert_not_contains "//redwood:sequoiadendreon" output
+ assert_not_contains "//$pkg:sequoiadendron" output
}
function test_universe_scope_specified() {
- write_java_library_build
+ local -r pkg=$FUNCNAME
+ write_java_library_build $pkg
# The java_library rule has a host transition on its plugins attribute.
- bazel cquery //pine:dep+//pine:plugin --universe_scope=//pine:my_java \
+ bazel cquery //$pkg:dep+//$pkg:plugin --universe_scope=//$pkg:my_java \
> output 2>"$TEST_log" || fail "Excepted success"
- # Find the lines of output for //pine:plugin and //pine:dep.
- PINE_HOST=$(grep "//pine:plugin" output)
- PINE_TARGET=$(grep "//pine:dep" output)
+ # Find the lines of output for //$pkg:plugin and //$pkg:dep.
+ PKG_HOST=$(grep "//$pkg:plugin" output)
+ PKG_TARGET=$(grep "//$pkg:dep" output)
# Trim to just configurations.
- HOST_CONFIG=${PINE_HOST/"//pine:plugin"}
- TARGET_CONFIG=${PINE_TARGET/"//pine:dep"}
+ HOST_CONFIG=${PKG_HOST/"//$pkg:plugin"}
+ TARGET_CONFIG=${PKG_TARGET/"//$pkg:dep"}
# Ensure they are are not equal.
assert_not_equals $HOST_CONFIG $TARGET_CONFIG
}
function test_host_config_output() {
- write_java_library_build
+ local -r pkg=$FUNCNAME
+ write_java_library_build $pkg
- bazel cquery //pine:plugin --universe_scope=//pine:my_java \
- > output 2>"$TEST_log" || fail "Excepted success"
+ bazel cquery //$pkg:plugin --universe_scope=//$pkg:my_java \
+ > output 2>"$TEST_log" || fail "Excepted success"
- assert_contains "//pine:plugin (HOST)" output
+ assert_contains "//$pkg:plugin (HOST)" output
}
function test_transitions_lite() {
- write_java_library_build
+ local -r pkg=$FUNCNAME
+ write_java_library_build $pkg
- bazel cquery "deps(//pine:my_java)" --transitions=lite \
- > output 2>"$TEST_log" || fail "Excepted success"
+ bazel cquery "deps(//$pkg:my_java)" --transitions=lite \
+ > output 2>"$TEST_log" || fail "Excepted success"
- assert_contains "//pine:my_java" output
- assert_contains "plugins#//pine:plugin#HostTransition" output
+ assert_contains "//$pkg:my_java" output
+ assert_contains "plugins#//$pkg:plugin#HostTransition" output
}
function test_transitions_full() {
- write_java_library_build
+ local -r pkg=$FUNCNAME
+ write_java_library_build $pkg
- bazel cquery "deps(//pine:my_java)" --transitions=full \
- > output 2>"$TEST_log" || fail "Excepted success"
+ bazel cquery "deps(//$pkg:my_java)" --transitions=full \
+ > output 2>"$TEST_log" || fail "Excepted success"
- assert_contains "//pine:my_java" output
- assert_contains "plugins#//pine:plugin#HostTransition" output
+ assert_contains "//$pkg:my_java" output
+ assert_contains "plugins#//$pkg:plugin#HostTransition" output
}
function write_java_library_build() {
- rm -rf pine
- mkdir -p pine
- cat > pine/BUILD <<EOF
+ local -r pkg=$1
+ mkdir -p $pkg
+ cat > $pkg/BUILD <<EOF
java_library(
name = "my_java",
srcs = ['foo.java'],
@@ -148,8 +187,4 @@ java_plugin(name = "plugin")
EOF
}
-function tear_down() {
- bazel shutdown
-}
-
run_suite "${PRODUCT_NAME} configured query tests"