Index: src/test/org/apache/lucene/util/LuceneTestCase.java =================================================================== --- src/test/org/apache/lucene/util/LuceneTestCase.java (revision 998507) +++ src/test/org/apache/lucene/util/LuceneTestCase.java (working copy) @@ -216,7 +216,7 @@ final boolean codecHasParam; int codecParam = 0; - if (codec.equals("random")) { + if (codec.equals("random") || codec.equals("all")) { codec = pickRandomCodec(seedRnd); codecHasParam = false; } else { @@ -282,7 +282,7 @@ stores = Collections.synchronizedMap(new IdentityHashMap()); codec = installTestCodecs(); savedLocale = Locale.getDefault(); - locale = TEST_LOCALE.equals("random") ? randomLocale(seedRnd) : localeForName(TEST_LOCALE); + locale = TEST_LOCALE.equals("random") || TEST_LOCALE.equals("all") ? randomLocale(seedRnd) : localeForName(TEST_LOCALE); Locale.setDefault(locale); savedTimeZone = TimeZone.getDefault(); timeZone = TEST_TIMEZONE.equals("random") ? randomTimeZone(seedRnd) : TimeZone.getTimeZone(TEST_TIMEZONE); @@ -863,21 +863,25 @@ public LocalizedTestCaseRunner(Class clazz) throws InitializationError { super(clazz); } -// FIXME see LUCENE-2652 -// @Override -// protected void runChild(FrameworkMethod arg0, RunNotifier arg1) { -// arg1.addListener(listener); -// locale = defaultLocale; -// super.runChild(arg0, arg1); -// -// for (Locale other : Locale.getAvailableLocales()) { -// locale = other; -// Locale.setDefault(locale); -// super.runChild(arg0, arg1); -// } -// -// Locale.setDefault(defaultLocale); -// } + + @Override + protected void runChild(FrameworkMethod arg0, RunNotifier arg1) { + if(TEST_LOCALE.equals("all")) { + arg1.addListener(listener); + locale = defaultLocale; + super.runChild(arg0, arg1); + + for (Locale other : Locale.getAvailableLocales()) { + locale = other; + Locale.setDefault(locale); + super.runChild(arg0, arg1); + } + + Locale.setDefault(defaultLocale); + } else { + super.runChild(arg0, arg1); + } + } } /** @@ -911,17 +915,21 @@ @Override protected void runChild(FrameworkMethod arg0, RunNotifier arg1) { - arg1.addListener(listener); - // If we're running w/ PreFlex codec we must swap in the - // test-only PreFlexRW codec (since core PreFlex can - // only read segments): - swapCodec(new PreFlexRWCodec()); - for (String other : CodecProvider.CORE_CODECS) { - codec = other; - CodecProvider.setDefaultCodec(codec); + if(TEST_CODEC.equals("all")) { + arg1.addListener(listener); + // If we're running w/ PreFlex codec we must swap in the + // test-only PreFlexRW codec (since core PreFlex can + // only read segments): + swapCodec(new PreFlexRWCodec()); + for (String other : CodecProvider.CORE_CODECS) { + codec = other; + CodecProvider.setDefaultCodec(codec); + super.runChild(arg0, arg1); + } + CodecProvider.setDefaultCodec(defaultCodec); + } else { super.runChild(arg0, arg1); } - CodecProvider.setDefaultCodec(defaultCodec); } }