526 FREE_C_HEAP_ARRAY(char, o_result); 527 528 // %p-test.log 529 jio_snprintf(i_result, JVM_MAXPATHLEN, "pid%u-test.log", pid); 530 o_result = make_log_name_internal("%p-test.log", NULL, pid, tms); 531 assert(strcmp(i_result, o_result) == 0, "failed on testing make_log_name(\"%%p-test.log\", NULL)"); 532 FREE_C_HEAP_ARRAY(char, o_result); 533 534 // %t.log 535 jio_snprintf(i_result, JVM_MAXPATHLEN, "%s.log", tms); 536 o_result = make_log_name_internal("%t.log", NULL, pid, tms); 537 assert(strcmp(i_result, o_result) == 0, "failed on testing make_log_name(\"%%t.log\", NULL)"); 538 FREE_C_HEAP_ARRAY(char, o_result); 539 540 { 541 // longest filename 542 char longest_name[JVM_MAXPATHLEN]; 543 memset(longest_name, 'a', sizeof(longest_name)); 544 longest_name[JVM_MAXPATHLEN - 1] = '\0'; 545 o_result = make_log_name_internal((const char*)&longest_name, NULL, pid, tms); 546 assert(strcmp(longest_name, o_result) == 0, err_msg("longest name does not match. expected '%s' but got '%s'", longest_name, o_result)); 547 FREE_C_HEAP_ARRAY(char, o_result); 548 } 549 550 { 551 // too long file name 552 char too_long_name[JVM_MAXPATHLEN + 100]; 553 int too_long_length = sizeof(too_long_name); 554 memset(too_long_name, 'a', too_long_length); 555 too_long_name[too_long_length - 1] = '\0'; 556 o_result = make_log_name_internal((const char*)&too_long_name, NULL, pid, tms); 557 assert(o_result == NULL, err_msg("Too long file name should return NULL, but got '%s'", o_result)); 558 } 559 560 { 561 // too long with timestamp 562 char longest_name[JVM_MAXPATHLEN]; 563 memset(longest_name, 'a', JVM_MAXPATHLEN); 564 longest_name[JVM_MAXPATHLEN - 3] = '%'; 565 longest_name[JVM_MAXPATHLEN - 2] = 't'; 566 longest_name[JVM_MAXPATHLEN - 1] = '\0'; 567 o_result = make_log_name_internal((const char*)&longest_name, NULL, pid, tms); 568 assert(o_result == NULL, err_msg("Too long file name after timestamp expansion should return NULL, but got '%s'", o_result)); 569 } 570 571 { 572 // too long with pid 573 char longest_name[JVM_MAXPATHLEN]; 574 memset(longest_name, 'a', JVM_MAXPATHLEN); 575 longest_name[JVM_MAXPATHLEN - 3] = '%'; 576 longest_name[JVM_MAXPATHLEN - 2] = 'p'; 577 longest_name[JVM_MAXPATHLEN - 1] = '\0'; 578 o_result = make_log_name_internal((const char*)&longest_name, NULL, pid, tms); 579 assert(o_result == NULL, err_msg("Too long file name after pid expansion should return NULL, but got '%s'", o_result)); 580 } 581 } 582 #endif // PRODUCT 583 584 fileStream::fileStream(const char* file_name) { 585 _file = fopen(file_name, "w"); 586 if (_file != NULL) { 587 _need_close = true; 588 } else { 589 warning("Cannot open file %s due to %s\n", file_name, strerror(errno)); 590 _need_close = false; 591 } 592 } 593 594 fileStream::fileStream(const char* file_name, const char* opentype) { 595 _file = fopen(file_name, opentype); 596 if (_file != NULL) { 597 _need_close = true; 598 } else { 599 warning("Cannot open file %s due to %s\n", file_name, strerror(errno)); | 526 FREE_C_HEAP_ARRAY(char, o_result); 527 528 // %p-test.log 529 jio_snprintf(i_result, JVM_MAXPATHLEN, "pid%u-test.log", pid); 530 o_result = make_log_name_internal("%p-test.log", NULL, pid, tms); 531 assert(strcmp(i_result, o_result) == 0, "failed on testing make_log_name(\"%%p-test.log\", NULL)"); 532 FREE_C_HEAP_ARRAY(char, o_result); 533 534 // %t.log 535 jio_snprintf(i_result, JVM_MAXPATHLEN, "%s.log", tms); 536 o_result = make_log_name_internal("%t.log", NULL, pid, tms); 537 assert(strcmp(i_result, o_result) == 0, "failed on testing make_log_name(\"%%t.log\", NULL)"); 538 FREE_C_HEAP_ARRAY(char, o_result); 539 540 { 541 // longest filename 542 char longest_name[JVM_MAXPATHLEN]; 543 memset(longest_name, 'a', sizeof(longest_name)); 544 longest_name[JVM_MAXPATHLEN - 1] = '\0'; 545 o_result = make_log_name_internal((const char*)&longest_name, NULL, pid, tms); 546 assert(strcmp(longest_name, o_result) == 0, "longest name does not match. expected '%s' but got '%s'", longest_name, o_result); 547 FREE_C_HEAP_ARRAY(char, o_result); 548 } 549 550 { 551 // too long file name 552 char too_long_name[JVM_MAXPATHLEN + 100]; 553 int too_long_length = sizeof(too_long_name); 554 memset(too_long_name, 'a', too_long_length); 555 too_long_name[too_long_length - 1] = '\0'; 556 o_result = make_log_name_internal((const char*)&too_long_name, NULL, pid, tms); 557 assert(o_result == NULL, "Too long file name should return NULL, but got '%s'", o_result); 558 } 559 560 { 561 // too long with timestamp 562 char longest_name[JVM_MAXPATHLEN]; 563 memset(longest_name, 'a', JVM_MAXPATHLEN); 564 longest_name[JVM_MAXPATHLEN - 3] = '%'; 565 longest_name[JVM_MAXPATHLEN - 2] = 't'; 566 longest_name[JVM_MAXPATHLEN - 1] = '\0'; 567 o_result = make_log_name_internal((const char*)&longest_name, NULL, pid, tms); 568 assert(o_result == NULL, "Too long file name after timestamp expansion should return NULL, but got '%s'", o_result); 569 } 570 571 { 572 // too long with pid 573 char longest_name[JVM_MAXPATHLEN]; 574 memset(longest_name, 'a', JVM_MAXPATHLEN); 575 longest_name[JVM_MAXPATHLEN - 3] = '%'; 576 longest_name[JVM_MAXPATHLEN - 2] = 'p'; 577 longest_name[JVM_MAXPATHLEN - 1] = '\0'; 578 o_result = make_log_name_internal((const char*)&longest_name, NULL, pid, tms); 579 assert(o_result == NULL, "Too long file name after pid expansion should return NULL, but got '%s'", o_result); 580 } 581 } 582 #endif // PRODUCT 583 584 fileStream::fileStream(const char* file_name) { 585 _file = fopen(file_name, "w"); 586 if (_file != NULL) { 587 _need_close = true; 588 } else { 589 warning("Cannot open file %s due to %s\n", file_name, strerror(errno)); 590 _need_close = false; 591 } 592 } 593 594 fileStream::fileStream(const char* file_name, const char* opentype) { 595 _file = fopen(file_name, opentype); 596 if (_file != NULL) { 597 _need_close = true; 598 } else { 599 warning("Cannot open file %s due to %s\n", file_name, strerror(errno)); |