@Test public void testInheritedOptionsWithSpecificOverride() throws Exception { ImmutableList<ImmutableList<String>> blazercOpts = ImmutableList.of( ImmutableList.of( "--rc_source=/doesnt/matter/0/bazelrc", "--default_override=0:common=--stringoption=common", "--default_override=0:common=--numoption=42"), ImmutableList.of( "--rc_source=/doesnt/matter/1/bazelrc", "--default_override=0:reportall=--stringoption=reportall"), ImmutableList.of( "--rc_source=/doesnt/matter/2/bazelrc", "--default_override=0:reportallinherited=--stringoption=reportallinherited")); for (List<ImmutableList<String>> e : Collections2.permutations(blazercOpts)) { outErr.reset(); BlazeCommandDispatcher dispatch = new BlazeCommandDispatcher(runtime, reportNum, reportAll, reportAllInherited); List<String> cmdLine = Lists.newArrayList("reportallinherited"); List<String> orderedOpts = ImmutableList.copyOf(Iterables.concat(e)); cmdLine.addAll(orderedOpts); dispatch.exec(cmdLine, LockingMode.ERROR_OUT, "test", outErr); String out = outErr.outAsLatin1(); assertEquals( String.format( "The more specific option should override, irrespective of source file or order. %s", orderedOpts), "42 reportallinherited", out); } }
@Test public void testCommonUsed() throws Exception { List<String> blazercOpts = ImmutableList.of( "--rc_source=/home/jrluser/.blazerc", "--default_override=0:common=--numoption=99"); BlazeCommandDispatcher dispatch = new BlazeCommandDispatcher(runtime, reportNum); List<String> cmdLine = Lists.newArrayList("reportnum"); cmdLine.addAll(blazercOpts); dispatch.exec(cmdLine, LockingMode.ERROR_OUT, "test", outErr); String out = outErr.outAsLatin1(); assertEquals("Common options should be used", "99", out); }
@Test public void testOptionsCombined() throws Exception { List<String> blazercOpts = ImmutableList.of( "--rc_source=/etc/bazelrc", "--default_override=0:common=--stringoption=foo", "--rc_source=/home/jrluser/.blazerc", "--default_override=1:common=--numoption=99"); BlazeCommandDispatcher dispatch = new BlazeCommandDispatcher(runtime, reportNum, reportAll); List<String> cmdLine = Lists.newArrayList("reportall"); cmdLine.addAll(blazercOpts); dispatch.exec(cmdLine, LockingMode.ERROR_OUT, "test", outErr); String out = outErr.outAsLatin1(); assertEquals("Options should get accumulated over different rc files", "99 foo", out); }
@Test public void testOptionsCombinedWithOverrideOtherName() throws Exception { List<String> blazercOpts = ImmutableList.of( "--rc_source=/home/jrluser/.blazerc", "--default_override=0:common=--stringoption=foo", "--default_override=0:common=--numoption=42", "--rc_source=/etc/bazelrc", "--default_override=1:common=--numoption=99"); BlazeCommandDispatcher dispatch = new BlazeCommandDispatcher(runtime, reportNum, reportAll); List<String> cmdLine = Lists.newArrayList("reportall"); cmdLine.addAll(blazercOpts); dispatch.exec(cmdLine, LockingMode.ERROR_OUT, "test", outErr); String out = outErr.outAsLatin1(); assertEquals("The more specific rc-file should override irrespective of name", "99 foo", out); }
private void runTestRequest(String request, int ret, String out, String err) throws Exception { assertEquals(ret, client.sendRequest(request)); assertEquals(out, outErr.outAsLatin1()); assertThat(outErr.errAsLatin1()).contains(err); }