Added tests for config_setting, constraint_value, and alias.

Closes #9030.

PiperOrigin-RevId: 261187493
diff --git a/src/test/shell/bazel/toolchain_test.sh b/src/test/shell/bazel/toolchain_test.sh
index 5c385ed..5b4f707 100755
--- a/src/test/shell/bazel/toolchain_test.sh
+++ b/src/test/shell/bazel/toolchain_test.sh
@@ -1489,6 +1489,79 @@
   expect_log "//demo:dep target platform: //platforms:platform2"
 }
 
+function test_config_setting_with_constraints {
+  cat >> BUILD <<EOF
+constraint_setting(name = "setting1")
+constraint_value(name = "value1", constraint_setting = ":setting1")
+constraint_value(name = "value2", constraint_setting = ":setting1")
+platform(name = "platform1",
+  constraint_values = [":value1"],
+)
+platform(name = "platform2",
+  constraint_values = [":value2"],
+)
+
+config_setting(name = "config1",
+  constraint_values = [":value1"],
+)
+config_setting(name = "config2",
+  constraint_values = [":value2"],
+)
+
+genrule(name = "demo",
+  outs = ["demo.log"],
+  cmd = select({
+    ":config1": "echo 'config1 selected' > \$@",
+    ":config2": "echo 'config2 selected' > \$@",
+  }),
+)
+EOF
+
+  bazel build --platforms=//:platform1 //:demo &> $TEST_log || fail "Build failed"
+  grep "config1 selected" bazel-bin/demo.log || fail "config1 expected"
+  bazel build --platforms=//:platform2 //:demo &> $TEST_log || fail "Build failed"
+  grep "config2 selected" bazel-bin/demo.log || fail "config2 expected"
+}
+
+function test_config_setting_with_constraints_alias {
+  cat >> BUILD <<EOF
+constraint_setting(name = "setting1")
+constraint_value(name = "value1", constraint_setting = ":setting1")
+constraint_value(name = "value2", constraint_setting = ":setting1")
+platform(name = "platform1",
+  constraint_values = [":value1"],
+)
+platform(name = "platform2",
+  constraint_values = [":value2"],
+)
+
+alias(name = "alias1", actual = ":value1")
+alias(name = "alias1a", actual = ":alias1")
+alias(name = "alias2", actual = ":value2")
+alias(name = "alias2a", actual = ":alias2")
+
+config_setting(name = "config1",
+  constraint_values = [":alias1a"],
+)
+config_setting(name = "config2",
+  constraint_values = [":alias2a"],
+)
+
+genrule(name = "demo",
+  outs = ["demo.log"],
+  cmd = select({
+    ":config1": "echo 'config1 selected' > \$@",
+    ":config2": "echo 'config2 selected' > \$@",
+  }),
+)
+EOF
+
+  bazel build --platforms=//:platform1 //:demo &> $TEST_log || fail "Build failed"
+  grep "config1 selected" bazel-bin/demo.log || fail "config1 expected"
+  bazel build --platforms=//:platform2 //:demo &> $TEST_log || fail "Build failed"
+  grep "config2 selected" bazel-bin/demo.log || fail "config2 expected"
+}
+
 # TODO(katre): Test using toolchain-provided make variables from a genrule.
 
 run_suite "toolchain tests"