345 LogConfiguration::configure_stdout(LogLevel::Off, false, LOG_TAGS(gc));
346 EXPECT_FALSE(log_is_enabled(Error, gc));
347 EXPECT_FALSE(log_is_enabled(Error, gc, heap));
348 for (LogTagSet* ts = LogTagSet::first(); ts != NULL; ts = ts->next()) {
349 EXPECT_EQ(LogLevel::Off, ts->level_for(&StdoutLog));
350 }
351 }
352
353 static int Test_logconfiguration_subscribe_triggered = 0;
354 static void Test_logconfiguration_subscribe_helper() {
355 Test_logconfiguration_subscribe_triggered++;
356 }
357
358 TEST_VM_F(LogConfigurationTest, subscribe) {
359 ResourceMark rm;
360 Log(logging) log;
361 set_log_config("stdout", "logging*=trace");
362
363 LogConfiguration::register_update_listener(&Test_logconfiguration_subscribe_helper);
364
365 LogConfiguration::parse_log_arguments("stdout", "logging=trace", NULL, NULL, log.error_stream());
366 ASSERT_EQ(1, Test_logconfiguration_subscribe_triggered);
367
368 LogConfiguration::configure_stdout(LogLevel::Debug, true, LOG_TAGS(gc));
369 ASSERT_EQ(2, Test_logconfiguration_subscribe_triggered);
370
371 LogConfiguration::disable_logging();
372 ASSERT_EQ(3, Test_logconfiguration_subscribe_triggered);
373 }
374
375 TEST_VM_F(LogConfigurationTest, parse_invalid_tagset) {
376 static const char* invalid_tagset = "logging+start+exit+safepoint+gc"; // Must not exist for test to function.
377
378 // Make sure warning is produced if one or more configured tagsets are invalid
379 ResourceMark rm;
380 stringStream ss;
381 bool success = LogConfiguration::parse_log_arguments("stdout", invalid_tagset, NULL, NULL, &ss);
382 const char* msg = ss.as_string();
383 EXPECT_TRUE(success) << "Should only cause a warning, not an error";
384 EXPECT_TRUE(string_contains_substring(msg, "No tag set matches selection(s):"));
385 EXPECT_TRUE(string_contains_substring(msg, invalid_tagset));
|
345 LogConfiguration::configure_stdout(LogLevel::Off, false, LOG_TAGS(gc));
346 EXPECT_FALSE(log_is_enabled(Error, gc));
347 EXPECT_FALSE(log_is_enabled(Error, gc, heap));
348 for (LogTagSet* ts = LogTagSet::first(); ts != NULL; ts = ts->next()) {
349 EXPECT_EQ(LogLevel::Off, ts->level_for(&StdoutLog));
350 }
351 }
352
353 static int Test_logconfiguration_subscribe_triggered = 0;
354 static void Test_logconfiguration_subscribe_helper() {
355 Test_logconfiguration_subscribe_triggered++;
356 }
357
358 TEST_VM_F(LogConfigurationTest, subscribe) {
359 ResourceMark rm;
360 Log(logging) log;
361 set_log_config("stdout", "logging*=trace");
362
363 LogConfiguration::register_update_listener(&Test_logconfiguration_subscribe_helper);
364
365 LogStream ls(log.error());
366 LogConfiguration::parse_log_arguments("stdout", "logging=trace", NULL, NULL, &ls);
367 ASSERT_EQ(1, Test_logconfiguration_subscribe_triggered);
368
369 LogConfiguration::configure_stdout(LogLevel::Debug, true, LOG_TAGS(gc));
370 ASSERT_EQ(2, Test_logconfiguration_subscribe_triggered);
371
372 LogConfiguration::disable_logging();
373 ASSERT_EQ(3, Test_logconfiguration_subscribe_triggered);
374 }
375
376 TEST_VM_F(LogConfigurationTest, parse_invalid_tagset) {
377 static const char* invalid_tagset = "logging+start+exit+safepoint+gc"; // Must not exist for test to function.
378
379 // Make sure warning is produced if one or more configured tagsets are invalid
380 ResourceMark rm;
381 stringStream ss;
382 bool success = LogConfiguration::parse_log_arguments("stdout", invalid_tagset, NULL, NULL, &ss);
383 const char* msg = ss.as_string();
384 EXPECT_TRUE(success) << "Should only cause a warning, not an error";
385 EXPECT_TRUE(string_contains_substring(msg, "No tag set matches selection(s):"));
386 EXPECT_TRUE(string_contains_substring(msg, invalid_tagset));
|