aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-08-02 10:04:22 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-08-02 11:16:42 +0000
commit8f08c63365d1e72d5f70285294d4df774d693a68 (patch)
tree28268c8ccac729adedb58c585dc816a3433cafd3 /src/test/java/com
parentfbe4221dca7715edd784c2fc598877fb102cb8a3 (diff)
Move the --define command line option from CppConfiguration to BuildConfiguration.
It makes much more sense there because it does *not* specify C++ #defines but BUILD variables. Also rename the getter method to make that clearer. This allows us to remove BuildConfiguration.Fragment#getCommandLineDefines(). -- MOS_MIGRATED_REVID=129080014
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java48
1 files changed, 44 insertions, 4 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
index 873b6c4fda..fc60ff6fb7 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
@@ -30,14 +30,12 @@ import com.google.devtools.build.lib.rules.cpp.CppOptions;
import com.google.devtools.build.lib.rules.java.JavaConfiguration;
import com.google.devtools.build.lib.rules.objc.J2ObjcConfiguration;
import com.google.devtools.common.options.Options;
-
+import java.util.Map;
+import java.util.regex.Pattern;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import java.util.Map;
-import java.util.regex.Pattern;
-
/**
* Tests for {@link BuildConfiguration}.
*/
@@ -334,4 +332,46 @@ public class BuildConfigurationTest extends ConfigurationTestCase {
assertThat(config1.getFragment(J2ObjcConfiguration.class))
.isNotSameAs(config3.getFragment(J2ObjcConfiguration.class));
}
+
+ @Test
+ public void testCommandLineVariables() throws Exception {
+ BuildConfiguration config = create(
+ "--define", "a=b/c:d", "--define", "b=FOO", "--define", "DEFUN=Nope");
+ assertThat(config.getCommandLineBuildVariables().get("a")).isEqualTo("b/c:d");
+ assertThat(config.getCommandLineBuildVariables().get("b")).isEqualTo("FOO");
+ assertThat(config.getCommandLineBuildVariables().get("DEFUN")).isEqualTo("Nope");
+ }
+
+ // Regression test for bug #2518997:
+ // "--define in blazerc overrides --define from command line"
+ @Test
+ public void testCommandLineVariablesOverride() throws Exception {
+ BuildConfiguration config = create("--define", "a=b", "--define", "a=c");
+ assertThat(config.getCommandLineBuildVariables().get("a")).isEqualTo("c");
+ }
+
+ // This is really a test of option parsing, not command-line variable
+ // semantics.
+ @Test
+ public void testCommandLineVariablesWithFunnyCharacters() throws Exception {
+ BuildConfiguration config = create(
+ "--define", "foo=#foo",
+ "--define", "comma=a,b",
+ "--define", "space=foo bar",
+ "--define", "thing=a \"quoted\" thing",
+ "--define", "qspace=a\\ quoted\\ space",
+ "--define", "#a=pounda");
+ assertThat(config.getCommandLineBuildVariables().get("foo")).isEqualTo("#foo");
+ assertThat(config.getCommandLineBuildVariables().get("comma")).isEqualTo("a,b");
+ assertThat(config.getCommandLineBuildVariables().get("space")).isEqualTo("foo bar");
+ assertThat(config.getCommandLineBuildVariables().get("thing")).isEqualTo("a \"quoted\" thing");
+ assertThat(config.getCommandLineBuildVariables().get("qspace")).isEqualTo("a\\ quoted\\ space");
+ assertThat(config.getCommandLineBuildVariables().get("#a")).isEqualTo("pounda");
+ }
+
+ @Test
+ public void testHostDefine() throws Exception {
+ BuildConfiguration cfg = createHost("--define=foo=bar");
+ assertThat(cfg.getCommandLineBuildVariables().get("foo")).isEqualTo("bar");
+ }
}