Merge "Add method to run fortified versions of funcs."
diff --git a/tests/Android.mk b/tests/Android.mk
index 3a0d6ee..af8283f 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -86,11 +86,14 @@
stack_unwinding_test.cpp \
stdatomic_test.cpp \
stdint_test.cpp \
+ stdio_nofortify_test.cpp \
stdio_test.cpp \
stdio_ext_test.cpp \
stdlib_test.cpp \
+ string_nofortify_test.cpp \
string_test.cpp \
string_posix_strerror_r_test.cpp \
+ strings_nofortify_test.cpp \
strings_test.cpp \
stubs_test.cpp \
sstream_test.cpp \
@@ -117,6 +120,7 @@
time_test.cpp \
uchar_test.cpp \
uniqueptr_test.cpp \
+ unistd_nofortify_test.cpp \
unistd_test.cpp \
utmp_test.cpp \
wchar_test.cpp \
diff --git a/tests/stdio_nofortify_test.cpp b/tests/stdio_nofortify_test.cpp
new file mode 100644
index 0000000..9bdcb03
--- /dev/null
+++ b/tests/stdio_nofortify_test.cpp
@@ -0,0 +1,12 @@
+
+#ifdef _FORTIFY_SOURCE
+#undef _FORTIFY_SOURCE
+#endif
+
+#define NOFORTIFY
+
+#include "stdio_test.cpp"
+
+#if defined(_FORTIFY_SOURCE)
+#error "_FORTIFY_SOURCE has been redefined, fix the code to remove this redefinition."
+#endif
diff --git a/tests/stdio_test.cpp b/tests/stdio_test.cpp
index afb1511..58109a9 100644
--- a/tests/stdio_test.cpp
+++ b/tests/stdio_test.cpp
@@ -31,14 +31,20 @@
#include "TemporaryFile.h"
-TEST(stdio, flockfile_18208568_stderr) {
+#if defined(NOFORTIFY)
+#define STDIO_TEST stdio_nofortify
+#else
+#define STDIO_TEST stdio
+#endif
+
+TEST(STDIO_TEST, flockfile_18208568_stderr) {
// Check that we have a _recursive_ mutex for flockfile.
flockfile(stderr);
feof(stderr); // We don't care about the result, but this needs to take the lock.
funlockfile(stderr);
}
-TEST(stdio, flockfile_18208568_regular) {
+TEST(STDIO_TEST, flockfile_18208568_regular) {
// We never had a bug for streams other than stdin/stdout/stderr, but test anyway.
FILE* fp = fopen("/dev/null", "w");
ASSERT_TRUE(fp != NULL);
@@ -48,7 +54,7 @@
fclose(fp);
}
-TEST(stdio, tmpfile_fileno_fprintf_rewind_fgets) {
+TEST(STDIO_TEST, tmpfile_fileno_fprintf_rewind_fgets) {
FILE* fp = tmpfile();
ASSERT_TRUE(fp != NULL);
@@ -73,7 +79,7 @@
fclose(fp);
}
-TEST(stdio, dprintf) {
+TEST(STDIO_TEST, dprintf) {
TemporaryFile tf;
int rc = dprintf(tf.fd, "hello\n");
@@ -91,7 +97,7 @@
fclose(tfile);
}
-TEST(stdio, getdelim) {
+TEST(STDIO_TEST, getdelim) {
FILE* fp = tmpfile();
ASSERT_TRUE(fp != NULL);
@@ -126,7 +132,7 @@
fclose(fp);
}
-TEST(stdio, getdelim_invalid) {
+TEST(STDIO_TEST, getdelim_invalid) {
FILE* fp = tmpfile();
ASSERT_TRUE(fp != NULL);
@@ -151,7 +157,7 @@
fclose(fp);
}
-TEST(stdio, getdelim_directory) {
+TEST(STDIO_TEST, getdelim_directory) {
FILE* fp = fopen("/proc", "r");
ASSERT_TRUE(fp != NULL);
char* word_read;
@@ -160,7 +166,7 @@
fclose(fp);
}
-TEST(stdio, getline) {
+TEST(STDIO_TEST, getline) {
FILE* fp = tmpfile();
ASSERT_TRUE(fp != NULL);
@@ -202,7 +208,7 @@
fclose(fp);
}
-TEST(stdio, getline_invalid) {
+TEST(STDIO_TEST, getline_invalid) {
FILE* fp = tmpfile();
ASSERT_TRUE(fp != NULL);
@@ -227,7 +233,7 @@
fclose(fp);
}
-TEST(stdio, printf_ssize_t) {
+TEST(STDIO_TEST, printf_ssize_t) {
// http://b/8253769
ASSERT_EQ(sizeof(ssize_t), sizeof(long int));
ASSERT_EQ(sizeof(ssize_t), sizeof(size_t));
@@ -240,20 +246,20 @@
}
// https://code.google.com/p/android/issues/detail?id=64886
-TEST(stdio, snprintf_a) {
+TEST(STDIO_TEST, snprintf_a) {
char buf[BUFSIZ];
EXPECT_EQ(23, snprintf(buf, sizeof(buf), "<%a>", 9990.235));
EXPECT_STREQ("<0x1.3831e147ae148p+13>", buf);
}
-TEST(stdio, snprintf_lc) {
+TEST(STDIO_TEST, snprintf_lc) {
char buf[BUFSIZ];
wint_t wc = L'a';
EXPECT_EQ(3, snprintf(buf, sizeof(buf), "<%lc>", wc));
EXPECT_STREQ("<a>", buf);
}
-TEST(stdio, snprintf_ls) {
+TEST(STDIO_TEST, snprintf_ls) {
char buf[BUFSIZ];
wchar_t* ws = NULL;
EXPECT_EQ(8, snprintf(buf, sizeof(buf), "<%ls>", ws));
@@ -265,7 +271,7 @@
EXPECT_STREQ("<hi>", buf);
}
-TEST(stdio, snprintf_n) {
+TEST(STDIO_TEST, snprintf_n) {
#if defined(__BIONIC__)
// http://b/14492135
char buf[32];
@@ -278,7 +284,7 @@
#endif
}
-TEST(stdio, snprintf_smoke) {
+TEST(STDIO_TEST, snprintf_smoke) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "a");
@@ -401,7 +407,7 @@
EXPECT_STREQ(minus_inf, buf) << fmt_plus;
}
-TEST(stdio, snprintf_inf_nan) {
+TEST(STDIO_TEST, snprintf_inf_nan) {
CheckInfNan(snprintf, "%a", "%+a", "-inf", "inf", "+inf", "-nan", "nan", "+nan");
CheckInfNan(snprintf, "%A", "%+A", "-INF", "INF", "+INF", "-NAN", "NAN", "+NAN");
CheckInfNan(snprintf, "%e", "%+e", "-inf", "inf", "+inf", "-nan", "nan", "+nan");
@@ -412,7 +418,7 @@
CheckInfNan(snprintf, "%G", "%+G", "-INF", "INF", "+INF", "-NAN", "NAN", "+NAN");
}
-TEST(stdio, wsprintf_inf_nan) {
+TEST(STDIO_TEST, wsprintf_inf_nan) {
CheckInfNan(swprintf, L"%a", L"%+a", L"-inf", L"inf", L"+inf", L"-nan", L"nan", L"+nan");
CheckInfNan(swprintf, L"%A", L"%+A", L"-INF", L"INF", L"+INF", L"-NAN", L"NAN", L"+NAN");
CheckInfNan(swprintf, L"%e", L"%+e", L"-inf", L"inf", L"+inf", L"-nan", L"nan", L"+nan");
@@ -423,19 +429,19 @@
CheckInfNan(swprintf, L"%G", L"%+G", L"-INF", L"INF", L"+INF", L"-NAN", L"NAN", L"+NAN");
}
-TEST(stdio, snprintf_d_INT_MAX) {
+TEST(STDIO_TEST, snprintf_d_INT_MAX) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%d", INT_MAX);
EXPECT_STREQ("2147483647", buf);
}
-TEST(stdio, snprintf_d_INT_MIN) {
+TEST(STDIO_TEST, snprintf_d_INT_MIN) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%d", INT_MIN);
EXPECT_STREQ("-2147483648", buf);
}
-TEST(stdio, snprintf_ld_LONG_MAX) {
+TEST(STDIO_TEST, snprintf_ld_LONG_MAX) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%ld", LONG_MAX);
#if __LP64__
@@ -445,7 +451,7 @@
#endif
}
-TEST(stdio, snprintf_ld_LONG_MIN) {
+TEST(STDIO_TEST, snprintf_ld_LONG_MIN) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%ld", LONG_MIN);
#if __LP64__
@@ -455,19 +461,19 @@
#endif
}
-TEST(stdio, snprintf_lld_LLONG_MAX) {
+TEST(STDIO_TEST, snprintf_lld_LLONG_MAX) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%lld", LLONG_MAX);
EXPECT_STREQ("9223372036854775807", buf);
}
-TEST(stdio, snprintf_lld_LLONG_MIN) {
+TEST(STDIO_TEST, snprintf_lld_LLONG_MIN) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%lld", LLONG_MIN);
EXPECT_STREQ("-9223372036854775808", buf);
}
-TEST(stdio, snprintf_e) {
+TEST(STDIO_TEST, snprintf_e) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%e", 1.5);
@@ -477,7 +483,7 @@
EXPECT_STREQ("1.500000e+00", buf);
}
-TEST(stdio, snprintf_negative_zero_5084292) {
+TEST(STDIO_TEST, snprintf_negative_zero_5084292) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%e", -0.0);
@@ -498,7 +504,7 @@
EXPECT_STREQ("-0X0P+0", buf);
}
-TEST(stdio, snprintf_utf8_15439554) {
+TEST(STDIO_TEST, snprintf_utf8_15439554) {
locale_t cloc = newlocale(LC_ALL, "C.UTF-8", 0);
locale_t old_locale = uselocale(cloc);
@@ -522,7 +528,7 @@
freelocale(cloc);
}
-TEST(stdio, fprintf_failures_7229520) {
+TEST(STDIO_TEST, fprintf_failures_7229520) {
// http://b/7229520
FILE* fp;
@@ -545,7 +551,7 @@
ASSERT_EQ(-1, fclose(fp));
}
-TEST(stdio, popen) {
+TEST(STDIO_TEST, popen) {
FILE* fp = popen("cat /proc/version", "r");
ASSERT_TRUE(fp != NULL);
@@ -557,7 +563,7 @@
ASSERT_EQ(0, pclose(fp));
}
-TEST(stdio, getc) {
+TEST(STDIO_TEST, getc) {
FILE* fp = fopen("/proc/version", "r");
ASSERT_TRUE(fp != NULL);
ASSERT_EQ('L', getc(fp));
@@ -568,14 +574,14 @@
fclose(fp);
}
-TEST(stdio, putc) {
+TEST(STDIO_TEST, putc) {
FILE* fp = fopen("/proc/version", "r");
ASSERT_TRUE(fp != NULL);
ASSERT_EQ(EOF, putc('x', fp));
fclose(fp);
}
-TEST(stdio, sscanf) {
+TEST(STDIO_TEST, sscanf) {
char s1[123];
int i1;
double d1;
@@ -586,7 +592,7 @@
ASSERT_DOUBLE_EQ(1.23, d1);
}
-TEST(stdio, cantwrite_EBADF) {
+TEST(STDIO_TEST, cantwrite_EBADF) {
// If we open a file read-only...
FILE* fp = fopen("/proc/version", "r");
@@ -626,7 +632,7 @@
// Tests that we can only have a consistent and correct fpos_t when using
// f*pos functions (i.e. fpos doesn't get inside a multi byte character).
-TEST(stdio, consistent_fpos_t) {
+TEST(STDIO_TEST, consistent_fpos_t) {
ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
uselocale(LC_GLOBAL_LOCALE);
@@ -690,7 +696,7 @@
}
// Exercise the interaction between fpos and seek.
-TEST(stdio, fpos_t_and_seek) {
+TEST(STDIO_TEST, fpos_t_and_seek) {
ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
uselocale(LC_GLOBAL_LOCALE);
@@ -750,7 +756,7 @@
fclose(fp);
}
-TEST(stdio, fmemopen) {
+TEST(STDIO_TEST, fmemopen) {
char buf[16];
memset(buf, 0, sizeof(buf));
FILE* fp = fmemopen(buf, sizeof(buf), "r+");
@@ -770,7 +776,7 @@
fclose(fp);
}
-TEST(stdio, fmemopen_NULL) {
+TEST(STDIO_TEST, fmemopen_NULL) {
FILE* fp = fmemopen(nullptr, 128, "r+");
ASSERT_NE(EOF, fputs("xyz\n", fp));
@@ -784,7 +790,7 @@
fclose(fp);
}
-TEST(stdio, fmemopen_EINVAL) {
+TEST(STDIO_TEST, fmemopen_EINVAL) {
char buf[16];
// Invalid size.
@@ -798,7 +804,7 @@
ASSERT_EQ(EINVAL, errno);
}
-TEST(stdio, open_memstream) {
+TEST(STDIO_TEST, open_memstream) {
char* p = nullptr;
size_t size = 0;
FILE* fp = open_memstream(&p, &size);
@@ -810,7 +816,7 @@
free(p);
}
-TEST(stdio, open_memstream_EINVAL) {
+TEST(STDIO_TEST, open_memstream_EINVAL) {
#if defined(__BIONIC__)
char* p;
size_t size;
@@ -829,7 +835,7 @@
#endif
}
-TEST(stdio, fdopen_CLOEXEC) {
+TEST(STDIO_TEST, fdopen_CLOEXEC) {
int fd = open("/proc/version", O_RDONLY);
ASSERT_TRUE(fd != -1);
@@ -850,7 +856,7 @@
close(fd);
}
-TEST(stdio, freopen_CLOEXEC) {
+TEST(STDIO_TEST, freopen_CLOEXEC) {
FILE* fp = fopen("/proc/version", "r");
ASSERT_TRUE(fp != NULL);
@@ -871,7 +877,7 @@
// https://code.google.com/p/android/issues/detail?id=81155
// http://b/18556607
-TEST(stdio, fread_unbuffered_pathological_performance) {
+TEST(STDIO_TEST, fread_unbuffered_pathological_performance) {
FILE* fp = fopen("/dev/zero", "r");
ASSERT_TRUE(fp != NULL);
@@ -900,7 +906,7 @@
}
}
-TEST(stdio, fread_EOF) {
+TEST(STDIO_TEST, fread_EOF) {
std::string digits("0123456789");
FILE* fp = fmemopen(&digits[0], digits.size(), "r");
@@ -934,11 +940,11 @@
fclose(fp);
}
-TEST(stdio, fread_from_write_only_stream_slow_path) {
+TEST(STDIO_TEST, fread_from_write_only_stream_slow_path) {
test_fread_from_write_only_stream(1);
}
-TEST(stdio, fread_from_write_only_stream_fast_path) {
+TEST(STDIO_TEST, fread_from_write_only_stream_fast_path) {
test_fread_from_write_only_stream(64*1024);
}
@@ -967,16 +973,16 @@
fclose(fp);
}
-TEST(stdio, fwrite_after_fread_slow_path) {
+TEST(STDIO_TEST, fwrite_after_fread_slow_path) {
test_fwrite_after_fread(16);
}
-TEST(stdio, fwrite_after_fread_fast_path) {
+TEST(STDIO_TEST, fwrite_after_fread_fast_path) {
test_fwrite_after_fread(64*1024);
}
// http://b/19172514
-TEST(stdio, fread_after_fseek) {
+TEST(STDIO_TEST, fread_after_fseek) {
TemporaryFile tf;
FILE* fp = fopen(tf.filename, "w+");
@@ -1014,7 +1020,7 @@
}
// https://code.google.com/p/android/issues/detail?id=184847
-TEST(stdio, fread_EOF_184847) {
+TEST(STDIO_TEST, fread_EOF_184847) {
TemporaryFile tf;
char buf[6] = {0};
diff --git a/tests/string_nofortify_test.cpp b/tests/string_nofortify_test.cpp
new file mode 100644
index 0000000..1c0be35
--- /dev/null
+++ b/tests/string_nofortify_test.cpp
@@ -0,0 +1,12 @@
+
+#ifdef _FORTIFY_SOURCE
+#undef _FORTIFY_SOURCE
+#endif
+
+#define NOFORTIFY
+
+#include "string_test.cpp"
+
+#if defined(_FORTIFY_SOURCE)
+#error "_FORTIFY_SOURCE has been redefined, fix the code to remove this redefinition."
+#endif
diff --git a/tests/string_test.cpp b/tests/string_test.cpp
index 842e1c7..96b4143 100644
--- a/tests/string_test.cpp
+++ b/tests/string_test.cpp
@@ -26,6 +26,12 @@
#include "buffer_tests.h"
+#if defined(NOFORTIFY)
+#define STRING_TEST string_nofortify
+#else
+#define STRING_TEST string
+#endif
+
#if defined(__BIONIC__)
#define STRLCPY_SUPPORTED
#define STRLCAT_SUPPORTED
@@ -45,7 +51,7 @@
return 0;
}
-TEST(string, strerror) {
+TEST(STRING_TEST, strerror) {
// Valid.
ASSERT_STREQ("Success", strerror(0));
ASSERT_STREQ("Operation not permitted", strerror(1));
@@ -63,7 +69,7 @@
#endif // __BIONIC__
// glibc's strerror isn't thread safe, only its strsignal.
-TEST(string, strerror_concurrent) {
+TEST(STRING_TEST, strerror_concurrent) {
#if defined(__BIONIC__)
const char* strerror1001 = strerror(1001);
ASSERT_STREQ("Unknown error 1001", strerror1001);
@@ -80,7 +86,7 @@
#endif // __BIONIC__
}
-TEST(string, gnu_strerror_r) {
+TEST(STRING_TEST, gnu_strerror_r) {
char buf[256];
// Note that glibc doesn't necessarily write into the buffer.
@@ -110,7 +116,7 @@
ASSERT_EQ(0, errno);
}
-TEST(string, strsignal) {
+TEST(STRING_TEST, strsignal) {
// A regular signal.
ASSERT_STREQ("Hangup", strsignal(1));
@@ -130,7 +136,7 @@
return reinterpret_cast<void*>(equal);
}
-TEST(string, strsignal_concurrent) {
+TEST(STRING_TEST, strsignal_concurrent) {
const char* strsignal1001 = strsignal(1001);
ASSERT_STREQ("Unknown signal 1001", strsignal1001);
@@ -243,7 +249,7 @@
template<class Character>
size_t StringTestState<Character>::alignments_size = sizeof(alignments)/sizeof(size_t);
-TEST(string, strcat) {
+TEST(STRING_TEST, strcat) {
StringTestState<char> state(SMALL);
for (size_t i = 1; i < state.n; i++) {
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
@@ -264,7 +270,7 @@
}
// one byte target with "\0" source
-TEST(string, strcpy2) {
+TEST(STRING_TEST, strcpy2) {
char buf[1];
char* orig = strdup("");
ASSERT_EQ(buf, strcpy(buf, orig));
@@ -273,7 +279,7 @@
}
// multibyte target where we under fill target
-TEST(string, strcpy3) {
+TEST(STRING_TEST, strcpy3) {
char buf[10];
char* orig = strdup("12345");
memset(buf, 'A', sizeof(buf));
@@ -287,7 +293,7 @@
}
// multibyte target where we fill target exactly
-TEST(string, strcpy4) {
+TEST(STRING_TEST, strcpy4) {
char buf[10];
char* orig = strdup("123456789");
memset(buf, 'A', sizeof(buf));
@@ -297,7 +303,7 @@
}
// one byte target with "\0" source
-TEST(string, stpcpy2) {
+TEST(STRING_TEST, stpcpy2) {
char buf[1];
char* orig = strdup("");
ASSERT_EQ(buf, stpcpy(buf, orig));
@@ -306,7 +312,7 @@
}
// multibyte target where we under fill target
-TEST(string, stpcpy3) {
+TEST(STRING_TEST, stpcpy3) {
char buf[10];
char* orig = strdup("12345");
memset(buf, 'A', sizeof(buf));
@@ -320,7 +326,7 @@
}
// multibyte target where we fill target exactly
-TEST(string, stpcpy4) {
+TEST(STRING_TEST, stpcpy4) {
char buf[10];
char* orig = strdup("123456789");
memset(buf, 'A', sizeof(buf));
@@ -329,7 +335,7 @@
free(orig);
}
-TEST(string, strcat2) {
+TEST(STRING_TEST, strcat2) {
char buf[10];
memset(buf, 'A', sizeof(buf));
buf[0] = 'a';
@@ -342,7 +348,7 @@
ASSERT_EQ('A', buf[9]);
}
-TEST(string, strcat3) {
+TEST(STRING_TEST, strcat3) {
char buf[10];
memset(buf, 'A', sizeof(buf));
buf[0] = 'a';
@@ -352,7 +358,7 @@
ASSERT_STREQ("a01234567", buf);
}
-TEST(string, strncat2) {
+TEST(STRING_TEST, strncat2) {
char buf[10];
memset(buf, 'A', sizeof(buf));
buf[0] = 'a';
@@ -365,7 +371,7 @@
ASSERT_EQ('A', buf[9]);
}
-TEST(string, strncat3) {
+TEST(STRING_TEST, strncat3) {
char buf[10];
memset(buf, 'A', sizeof(buf));
buf[0] = 'a';
@@ -378,7 +384,7 @@
ASSERT_EQ('A', buf[9]);
}
-TEST(string, strncat4) {
+TEST(STRING_TEST, strncat4) {
char buf[10];
memset(buf, 'A', sizeof(buf));
buf[0] = 'a';
@@ -388,7 +394,7 @@
ASSERT_STREQ("a01234567", buf);
}
-TEST(string, strncat5) {
+TEST(STRING_TEST, strncat5) {
char buf[10];
memset(buf, 'A', sizeof(buf));
buf[0] = 'a';
@@ -398,14 +404,14 @@
ASSERT_STREQ("a01234567", buf);
}
-TEST(string, strchr_with_0) {
+TEST(STRING_TEST, strchr_with_0) {
char buf[10];
const char* s = "01234";
memcpy(buf, s, strlen(s) + 1);
EXPECT_TRUE(strchr(buf, '\0') == (buf + strlen(s)));
}
-TEST(string, strchr_multiple) {
+TEST(STRING_TEST, strchr_multiple) {
char str[128];
memset(str, 'a', sizeof(str) - 1);
str[sizeof(str)-1] = '\0';
@@ -423,7 +429,7 @@
}
}
-TEST(string, strchr) {
+TEST(STRING_TEST, strchr) {
int seek_char = 'R';
StringTestState<char> state(SMALL);
@@ -454,14 +460,14 @@
}
}
-TEST(string, strchrnul) {
+TEST(STRING_TEST, strchrnul) {
const char* s = "01234222";
EXPECT_TRUE(strchrnul(s, '2') == &s[2]);
EXPECT_TRUE(strchrnul(s, '8') == (s + strlen(s)));
EXPECT_TRUE(strchrnul(s, '\0') == (s + strlen(s)));
}
-TEST(string, strcmp) {
+TEST(STRING_TEST, strcmp) {
StringTestState<char> state(SMALL);
for (size_t i = 1; i < state.n; i++) {
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
@@ -496,7 +502,7 @@
}
}
-TEST(string, stpcpy) {
+TEST(STRING_TEST, stpcpy) {
StringTestState<char> state(SMALL);
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
size_t pos = random() % state.MAX_LEN;
@@ -520,7 +526,7 @@
}
}
-TEST(string, strcpy) {
+TEST(STRING_TEST, strcpy) {
StringTestState<char> state(SMALL);
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
size_t pos = random() % state.MAX_LEN;
@@ -544,7 +550,7 @@
}
}
-TEST(string, strlcat) {
+TEST(STRING_TEST, strlcat) {
#if defined(STRLCAT_SUPPORTED)
StringTestState<char> state(SMALL);
for (size_t i = 0; i < state.n; i++) {
@@ -573,7 +579,7 @@
#endif
}
-TEST(string, strlcpy) {
+TEST(STRING_TEST, strlcpy) {
#if defined(STRLCPY_SUPPORTED)
StringTestState<char> state(SMALL);
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
@@ -605,7 +611,7 @@
#endif
}
-TEST(string, strncat) {
+TEST(STRING_TEST, strncat) {
StringTestState<char> state(SMALL);
for (size_t i = 1; i < state.n; i++) {
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
@@ -629,7 +635,7 @@
}
}
-TEST(string, strncmp) {
+TEST(STRING_TEST, strncmp) {
StringTestState<char> state(SMALL);
for (size_t i = 1; i < state.n; i++) {
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
@@ -664,7 +670,7 @@
}
}
-TEST(string, stpncpy) {
+TEST(STRING_TEST, stpncpy) {
StringTestState<char> state(SMALL);
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
memset(state.ptr1, 'J', state.MAX_LEN);
@@ -699,7 +705,7 @@
}
}
-TEST(string, strncpy) {
+TEST(STRING_TEST, strncpy) {
StringTestState<char> state(SMALL);
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
// Choose a random value to fill the string, except \0 (string terminator),
@@ -736,7 +742,7 @@
}
}
-TEST(string, strrchr) {
+TEST(STRING_TEST, strrchr) {
int seek_char = 'M';
StringTestState<char> state(SMALL);
for (size_t i = 1; i < state.n; i++) {
@@ -766,7 +772,7 @@
}
}
-TEST(string, memchr) {
+TEST(STRING_TEST, memchr) {
int seek_char = 'N';
StringTestState<char> state(SMALL);
for (size_t i = 0; i < state.n; i++) {
@@ -787,7 +793,7 @@
}
}
-TEST(string, memchr_zero) {
+TEST(STRING_TEST, memchr_zero) {
uint8_t* buffer;
ASSERT_EQ(0, posix_memalign(reinterpret_cast<void**>(&buffer), 64, 64));
memset(buffer, 10, 64);
@@ -795,7 +801,7 @@
ASSERT_TRUE(NULL == memchr(buffer, 10, 0));
}
-TEST(string, memrchr) {
+TEST(STRING_TEST, memrchr) {
int seek_char = 'P';
StringTestState<char> state(SMALL);
for (size_t i = 0; i < state.n; i++) {
@@ -816,7 +822,7 @@
}
}
-TEST(string, memcmp) {
+TEST(STRING_TEST, memcmp) {
StringTestState<char> state(SMALL);
for (size_t i = 0; i < state.n; i++) {
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
@@ -836,7 +842,7 @@
}
}
-TEST(string, wmemcmp) {
+TEST(STRING_TEST, wmemcmp) {
StringTestState<wchar_t> state(SMALL);
for (size_t i = 0; i < state.n; i++) {
@@ -858,7 +864,7 @@
}
}
-TEST(string, memcpy) {
+TEST(STRING_TEST, memcpy) {
StringTestState<char> state(LARGE);
int rand = 4;
for (size_t i = 0; i < state.n - 1; i++) {
@@ -878,7 +884,7 @@
}
}
-TEST(string, memset) {
+TEST(STRING_TEST, memset) {
StringTestState<char> state(LARGE);
char ch = 'P';
for (size_t i = 0; i < state.n - 1; i++) {
@@ -898,7 +904,7 @@
}
}
-TEST(string, memmove) {
+TEST(STRING_TEST, memmove) {
StringTestState<char> state(LARGE);
for (size_t i = 0; i < state.n - 1; i++) {
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
@@ -917,7 +923,7 @@
}
}
-TEST(string, memmove_cache_size) {
+TEST(STRING_TEST, memmove_cache_size) {
size_t len = 600000;
int max_alignment = 31;
int alignments[] = {0, 5, 11, 29, 30};
@@ -955,7 +961,7 @@
#define MEMMOVE_DATA_SIZE (1024*1024*3)
-TEST(string, memmove_check) {
+TEST(STRING_TEST, memmove_check) {
char* buffer = reinterpret_cast<char*>(malloc(MEMMOVE_DATA_SIZE));
ASSERT_TRUE(buffer != NULL);
@@ -996,7 +1002,7 @@
}
}
-TEST(string, bcopy) {
+TEST(STRING_TEST, bcopy) {
StringTestState<char> state(LARGE);
for (size_t i = 0; i < state.n; i++) {
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
@@ -1013,7 +1019,7 @@
}
}
-TEST(string, bzero) {
+TEST(STRING_TEST, bzero) {
StringTestState<char> state(LARGE);
for (state.BeginIterations(); state.HasNextIteration(); state.NextIteration()) {
memset(state.ptr1, 'R', state.MAX_LEN);
@@ -1039,11 +1045,11 @@
ASSERT_TRUE(memcmp(src, dst, len) == 0);
}
-TEST(string, memcpy_align) {
+TEST(STRING_TEST, memcpy_align) {
RunSrcDstBufferAlignTest(LARGE, DoMemcpyTest);
}
-TEST(string, memcpy_overread) {
+TEST(STRING_TEST, memcpy_overread) {
RunSrcDstBufferOverreadTest(DoMemcpyTest);
}
@@ -1055,11 +1061,11 @@
ASSERT_TRUE(memcmp(src, dst, len) == 0);
}
-TEST(string, memmove_align) {
+TEST(STRING_TEST, memmove_align) {
RunSrcDstBufferAlignTest(LARGE, DoMemmoveTest);
}
-TEST(string, memmove_overread) {
+TEST(STRING_TEST, memmove_overread) {
RunSrcDstBufferOverreadTest(DoMemmoveTest);
}
@@ -1074,7 +1080,7 @@
}
}
-TEST(string, memset_align) {
+TEST(STRING_TEST, memset_align) {
RunSingleBufferAlignTest(LARGE, DoMemsetTest);
}
@@ -1086,11 +1092,11 @@
}
}
-TEST(string, strlen_align) {
+TEST(STRING_TEST, strlen_align) {
RunSingleBufferAlignTest(LARGE, DoStrlenTest);
}
-TEST(string, strlen_overread) {
+TEST(STRING_TEST, strlen_overread) {
RunSingleBufferOverreadTest(DoStrlenTest);
}
@@ -1105,11 +1111,11 @@
}
}
-TEST(string, strcpy_align) {
+TEST(STRING_TEST, strcpy_align) {
RunSrcDstBufferAlignTest(LARGE, DoStrcpyTest);
}
-TEST(string, strcpy_overread) {
+TEST(STRING_TEST, strcpy_overread) {
RunSrcDstBufferOverreadTest(DoStrcpyTest);
}
@@ -1126,7 +1132,7 @@
}
#endif
-TEST(string, strlcpy_align) {
+TEST(STRING_TEST, strlcpy_align) {
#if defined(STRLCPY_SUPPORTED)
RunSrcDstBufferAlignTest(LARGE, DoStrlcpyTest);
#else
@@ -1134,7 +1140,7 @@
#endif
}
-TEST(string, strlcpy_overread) {
+TEST(STRING_TEST, strlcpy_overread) {
#if defined(STRLCPY_SUPPORTED)
RunSrcDstBufferOverreadTest(DoStrlcpyTest);
#else
@@ -1154,11 +1160,11 @@
}
}
-TEST(string, stpcpy_align) {
+TEST(STRING_TEST, stpcpy_align) {
RunSrcDstBufferAlignTest(LARGE, DoStpcpyTest);
}
-TEST(string, stpcpy_overread) {
+TEST(STRING_TEST, stpcpy_overread) {
RunSrcDstBufferOverreadTest(DoStpcpyTest);
}
@@ -1214,11 +1220,11 @@
}
}
-TEST(string, strcat_align) {
+TEST(STRING_TEST, strcat_align) {
RunSrcDstBufferAlignTest(MEDIUM, DoStrcatTest, LargeSetIncrement);
}
-TEST(string, strcat_overread) {
+TEST(STRING_TEST, strcat_overread) {
RunSrcDstBufferOverreadTest(DoStrcatTest);
}
@@ -1262,7 +1268,7 @@
}
#endif
-TEST(string, strlcat_align) {
+TEST(STRING_TEST, strlcat_align) {
#if defined(STRLCAT_SUPPORTED)
RunSrcDstBufferAlignTest(MEDIUM, DoStrlcatTest, LargeSetIncrement);
#else
@@ -1270,7 +1276,7 @@
#endif
}
-TEST(string, strlcat_overread) {
+TEST(STRING_TEST, strlcat_overread) {
#if defined(STRLCAT_SUPPORTED)
RunSrcDstBufferOverreadTest(DoStrlcatTest);
#else
@@ -1323,11 +1329,11 @@
}
}
-TEST(string, strcmp_align) {
+TEST(STRING_TEST, strcmp_align) {
RunCmpBufferAlignTest(MEDIUM, DoStrcmpTest, DoStrcmpFailTest, LargeSetIncrement);
}
-TEST(string, strcmp_overread) {
+TEST(STRING_TEST, strcmp_overread) {
RunCmpBufferOverreadTest(DoStrcmpTest, DoStrcmpFailTest);
}
@@ -1355,11 +1361,11 @@
ASSERT_NE(0, memcmp(buf1, buf2, len));
}
-TEST(string, memcmp_align) {
+TEST(STRING_TEST, memcmp_align) {
RunCmpBufferAlignTest(MEDIUM, DoMemcmpTest, DoMemcmpFailTest, LargeSetIncrement);
}
-TEST(string, memcmp_overread) {
+TEST(STRING_TEST, memcmp_overread) {
RunCmpBufferOverreadTest(DoMemcmpTest, DoMemcmpFailTest);
}
@@ -1381,11 +1387,11 @@
}
}
-TEST(string, strchr_align) {
+TEST(STRING_TEST, strchr_align) {
RunSingleBufferAlignTest(MEDIUM, DoStrchrTest);
}
-TEST(string, strchr_overread) {
+TEST(STRING_TEST, strchr_overread) {
RunSingleBufferOverreadTest(DoStrchrTest);
}
@@ -1396,7 +1402,7 @@
ASSERT_EQ(0, errno) << in;
}
-TEST(string, __gnu_basename) {
+TEST(STRING_TEST, __gnu_basename) {
TestBasename("", "");
TestBasename("/usr/lib", "lib");
TestBasename("/usr/", "");
@@ -1408,7 +1414,7 @@
TestBasename("//usr//lib//", "");
}
-TEST(string, strnlen_147048) {
+TEST(STRING_TEST, strnlen_147048) {
// https://code.google.com/p/android/issues/detail?id=147048
char stack_src[64] = {0};
EXPECT_EQ(0U, strnlen(stack_src, 1024*1024*1024));
@@ -1418,11 +1424,11 @@
delete[] heap_src;
}
-TEST(string, strnlen_74741) {
+TEST(STRING_TEST, strnlen_74741) {
ASSERT_EQ(4U, strnlen("test", SIZE_MAX));
}
-TEST(string, mempcpy) {
+TEST(STRING_TEST, mempcpy) {
char dst[6];
ASSERT_EQ(&dst[4], reinterpret_cast<char*>(mempcpy(dst, "hello", 4)));
}
diff --git a/tests/strings_nofortify_test.cpp b/tests/strings_nofortify_test.cpp
new file mode 100644
index 0000000..36eee75
--- /dev/null
+++ b/tests/strings_nofortify_test.cpp
@@ -0,0 +1,12 @@
+
+#ifdef _FORTIFY_SOURCE
+#undef _FORTIFY_SOURCE
+#endif
+
+#define NOFORTIFY
+
+#include "strings_test.cpp"
+
+#if defined(_FORTIFY_SOURCE)
+#error "_FORTIFY_SOURCE has been redefined, fix the code to remove this redefinition."
+#endif
diff --git a/tests/strings_test.cpp b/tests/strings_test.cpp
index 823aa4f..1716843 100644
--- a/tests/strings_test.cpp
+++ b/tests/strings_test.cpp
@@ -20,7 +20,13 @@
#include <locale.h>
#include <strings.h>
-TEST(strings, ffs) {
+#if defined(NOFORTIFY)
+#define STRINGS_TEST strings_nofortify
+#else
+#define STRINGS_TEST strings
+#endif
+
+TEST(STRINGS_TEST, ffs) {
ASSERT_EQ( 0, ffs(0x00000000));
ASSERT_EQ( 1, ffs(0x00000001));
ASSERT_EQ( 6, ffs(0x00000020));
@@ -32,13 +38,13 @@
ASSERT_EQ(32, ffs(0x80000000));
}
-TEST(strings, strcasecmp) {
+TEST(STRINGS_TEST, strcasecmp) {
ASSERT_EQ(0, strcasecmp("hello", "HELLO"));
ASSERT_LT(strcasecmp("hello1", "hello2"), 0);
ASSERT_GT(strcasecmp("hello2", "hello1"), 0);
}
-TEST(strings, strcasecmp_l) {
+TEST(STRINGS_TEST, strcasecmp_l) {
locale_t l = newlocale(LC_ALL, "C", 0);
ASSERT_EQ(0, strcasecmp_l("hello", "HELLO", l));
ASSERT_LT(strcasecmp_l("hello1", "hello2", l), 0);
@@ -46,14 +52,14 @@
freelocale(l);
}
-TEST(strings, strncasecmp) {
+TEST(STRINGS_TEST, strncasecmp) {
ASSERT_EQ(0, strncasecmp("hello", "HELLO", 3));
ASSERT_EQ(0, strncasecmp("abcXX", "ABCYY", 3));
ASSERT_LT(strncasecmp("hello1", "hello2", 6), 0);
ASSERT_GT(strncasecmp("hello2", "hello1", 6), 0);
}
-TEST(strings, strncasecmp_l) {
+TEST(STRINGS_TEST, strncasecmp_l) {
locale_t l = newlocale(LC_ALL, "C", 0);
ASSERT_EQ(0, strncasecmp_l("hello", "HELLO", 3, l));
ASSERT_EQ(0, strncasecmp_l("abcXX", "ABCYY", 3, l));
diff --git a/tests/unistd_nofortify_test.cpp b/tests/unistd_nofortify_test.cpp
new file mode 100644
index 0000000..29966e9
--- /dev/null
+++ b/tests/unistd_nofortify_test.cpp
@@ -0,0 +1,12 @@
+
+#ifdef _FORTIFY_SOURCE
+#undef _FORTIFY_SOURCE
+#endif
+
+#define NOFORTIFY
+
+#include "unistd_test.cpp"
+
+#if defined(_FORTIFY_SOURCE)
+#error "_FORTIFY_SOURCE has been redefined, fix the code to remove this redefinition."
+#endif
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp
index 5e06b1f..5f412ce 100644
--- a/tests/unistd_test.cpp
+++ b/tests/unistd_test.cpp
@@ -35,6 +35,14 @@
#include "private/get_cpu_count_from_string.h"
+#if defined(NOFORTIFY)
+#define UNISTD_TEST unistd_nofortify
+#define UNISTD_DEATHTEST unistd_nofortify_DeathTest
+#else
+#define UNISTD_TEST unistd
+#define UNISTD_DEATHTEST unistd_DeathTest
+#endif
+
static void* get_brk() {
return sbrk(0);
}
@@ -44,7 +52,7 @@
return reinterpret_cast<void*>((addr + mask) & ~mask);
}
-TEST(unistd, brk) {
+TEST(UNISTD_TEST, brk) {
void* initial_break = get_brk();
// The kernel aligns the break to a page.
@@ -57,7 +65,7 @@
ASSERT_EQ(get_brk(), new_break);
}
-TEST(unistd, brk_ENOMEM) {
+TEST(UNISTD_TEST, brk_ENOMEM) {
ASSERT_EQ(-1, brk(reinterpret_cast<void*>(-1)));
ASSERT_EQ(ENOMEM, errno);
}
@@ -70,7 +78,7 @@
#define SBRK_MAX PTRDIFF_MAX
#endif
-TEST(unistd, sbrk_ENOMEM) {
+TEST(UNISTD_TEST, sbrk_ENOMEM) {
#if defined(__BIONIC__) && !defined(__LP64__)
// There is no way to guarantee that all overflow conditions can be tested
// without manipulating the underlying values of the current break.
@@ -141,7 +149,7 @@
#endif
}
-TEST(unistd, truncate) {
+TEST(UNISTD_TEST, truncate) {
TemporaryFile tf;
ASSERT_EQ(0, close(tf.fd));
ASSERT_EQ(0, truncate(tf.filename, 123));
@@ -151,7 +159,7 @@
ASSERT_EQ(123, sb.st_size);
}
-TEST(unistd, truncate64) {
+TEST(UNISTD_TEST, truncate64) {
TemporaryFile tf;
ASSERT_EQ(0, close(tf.fd));
ASSERT_EQ(0, truncate64(tf.filename, 123));
@@ -161,7 +169,7 @@
ASSERT_EQ(123, sb.st_size);
}
-TEST(unistd, ftruncate) {
+TEST(UNISTD_TEST, ftruncate) {
TemporaryFile tf;
ASSERT_EQ(0, ftruncate(tf.fd, 123));
ASSERT_EQ(0, close(tf.fd));
@@ -171,7 +179,7 @@
ASSERT_EQ(123, sb.st_size);
}
-TEST(unistd, ftruncate64) {
+TEST(UNISTD_TEST, ftruncate64) {
TemporaryFile tf;
ASSERT_EQ(0, ftruncate64(tf.fd, 123));
ASSERT_EQ(0, close(tf.fd));
@@ -181,7 +189,7 @@
ASSERT_EQ(123, sb.st_size);
}
-TEST(unistd, ftruncate_negative) {
+TEST(UNISTD_TEST, ftruncate_negative) {
TemporaryFile tf;
errno = 0;
ASSERT_EQ(-1, ftruncate(tf.fd, -123));
@@ -193,7 +201,7 @@
g_pause_test_flag = true;
}
-TEST(unistd, pause) {
+TEST(UNISTD_TEST, pause) {
ScopedSignalHandler handler(SIGALRM, PauseTestSignalHandler);
alarm(1);
@@ -202,7 +210,7 @@
ASSERT_TRUE(g_pause_test_flag);
}
-TEST(unistd, read) {
+TEST(UNISTD_TEST, read) {
int fd = open("/proc/version", O_RDONLY);
ASSERT_TRUE(fd != -1);
@@ -216,7 +224,7 @@
close(fd);
}
-TEST(unistd, read_EBADF) {
+TEST(UNISTD_TEST, read_EBADF) {
// read returns ssize_t which is 64-bits on LP64, so it's worth explicitly checking that
// our syscall stubs correctly return a 64-bit -1.
char buf[1];
@@ -224,7 +232,7 @@
ASSERT_EQ(EBADF, errno);
}
-TEST(unistd, syscall_long) {
+TEST(UNISTD_TEST, syscall_long) {
// Check that syscall(3) correctly returns long results.
// https://code.google.com/p/android/issues/detail?id=73952
// We assume that the break is > 4GiB, but this is potentially flaky.
@@ -232,11 +240,11 @@
ASSERT_EQ(p, static_cast<uintptr_t>(syscall(__NR_brk, 0)));
}
-TEST(unistd, alarm) {
+TEST(UNISTD_TEST, alarm) {
ASSERT_EQ(0U, alarm(0));
}
-TEST(unistd, _exit) {
+TEST(UNISTD_TEST, _exit) {
int pid = fork();
ASSERT_NE(-1, pid) << strerror(errno);
@@ -250,21 +258,21 @@
ASSERT_EQ(99, WEXITSTATUS(status));
}
-TEST(unistd, getenv_unsetenv) {
+TEST(UNISTD_TEST, getenv_unsetenv) {
ASSERT_EQ(0, setenv("test-variable", "hello", 1));
ASSERT_STREQ("hello", getenv("test-variable"));
ASSERT_EQ(0, unsetenv("test-variable"));
ASSERT_TRUE(getenv("test-variable") == NULL);
}
-TEST(unistd, unsetenv_EINVAL) {
+TEST(UNISTD_TEST, unsetenv_EINVAL) {
EXPECT_EQ(-1, unsetenv(""));
EXPECT_EQ(EINVAL, errno);
EXPECT_EQ(-1, unsetenv("a=b"));
EXPECT_EQ(EINVAL, errno);
}
-TEST(unistd, setenv_EINVAL) {
+TEST(UNISTD_TEST, setenv_EINVAL) {
EXPECT_EQ(-1, setenv(NULL, "value", 0));
EXPECT_EQ(EINVAL, errno);
EXPECT_EQ(-1, setenv(NULL, "value", 1));
@@ -279,7 +287,7 @@
EXPECT_EQ(EINVAL, errno);
}
-TEST(unistd, setenv) {
+TEST(UNISTD_TEST, setenv) {
ASSERT_EQ(0, unsetenv("test-variable"));
char a[] = "a";
@@ -305,7 +313,7 @@
ASSERT_EQ(0, unsetenv("test-variable"));
}
-TEST(unistd, putenv) {
+TEST(UNISTD_TEST, putenv) {
ASSERT_EQ(0, unsetenv("a"));
char* s1 = strdup("a=b");
@@ -326,7 +334,7 @@
free(s2);
}
-TEST(unistd, clearenv) {
+TEST(UNISTD_TEST, clearenv) {
extern char** environ;
// Guarantee that environ is not initially empty...
@@ -391,11 +399,11 @@
close(fd);
}
-TEST(unistd, fdatasync) {
+TEST(UNISTD_TEST, fdatasync) {
TestFsyncFunction(fdatasync);
}
-TEST(unistd, fsync) {
+TEST(UNISTD_TEST, fsync) {
TestFsyncFunction(fsync);
}
@@ -429,11 +437,11 @@
}
}
-TEST(unistd, getpid_caching_and_fork) {
+TEST(UNISTD_TEST, getpid_caching_and_fork) {
TestGetPidCachingWithFork(fork);
}
-TEST(unistd, getpid_caching_and_vfork) {
+TEST(UNISTD_TEST, getpid_caching_and_vfork) {
TestGetPidCachingWithFork(vfork);
}
@@ -442,7 +450,7 @@
return 123;
}
-TEST(unistd, getpid_caching_and_clone) {
+TEST(UNISTD_TEST, getpid_caching_and_clone) {
pid_t parent_pid = getpid();
ASSERT_EQ(syscall(__NR_getpid), parent_pid);
@@ -467,7 +475,7 @@
return NULL;
}
-TEST(unistd, getpid_caching_and_pthread_create) {
+TEST(UNISTD_TEST, getpid_caching_and_pthread_create) {
pid_t parent_pid = getpid();
pthread_t t;
@@ -480,13 +488,13 @@
ASSERT_EQ(NULL, result);
}
-class unistd_DeathTest : public BionicDeathTest {};
+class UNISTD_DEATHTEST : public BionicDeathTest {};
-TEST_F(unistd_DeathTest, abort) {
+TEST_F(UNISTD_DEATHTEST, abort) {
ASSERT_EXIT(abort(), testing::KilledBySignal(SIGABRT), "");
}
-TEST(unistd, sethostname) {
+TEST(UNISTD_TEST, sethostname) {
// The permissions check happens before the argument check, so this will
// fail for a different reason if you're running as root than if you're
// not, but it'll fail either way. Checking that we have the symbol is about
@@ -494,7 +502,7 @@
ASSERT_EQ(-1, sethostname("", -1));
}
-TEST(unistd, gethostname) {
+TEST(UNISTD_TEST, gethostname) {
char hostname[HOST_NAME_MAX + 1];
memset(hostname, 0, sizeof(hostname));
@@ -517,7 +525,7 @@
ASSERT_EQ(ENAMETOOLONG, errno);
}
-TEST(unistd, pathconf_fpathconf) {
+TEST(UNISTD_TEST, pathconf_fpathconf) {
TemporaryFile tf;
long rc = 0L;
// As a file system's block size is always power of 2, the configure values
@@ -538,7 +546,7 @@
}
-TEST(unistd, _POSIX_macros_smoke) {
+TEST(UNISTD_TEST, _POSIX_macros_smoke) {
// Make a tight verification of _POSIX_* / _POSIX2_* / _XOPEN_* macros, to prevent change by mistake.
// Verify according to POSIX.1-2008.
EXPECT_EQ(200809L, _POSIX_VERSION);
@@ -677,7 +685,7 @@
<< ret <<", Error Message: " << strerror(errno);
}
-TEST(unistd, sysconf) {
+TEST(UNISTD_TEST, sysconf) {
VERIFY_SYSCONF_POSIX_VERSION(_SC_ADVISORY_INFO);
VERIFY_SYSCONF_POSITIVE(_SC_ARG_MAX);
VERIFY_SYSCONF_POSITIVE(_SC_BC_BASE_MAX);
@@ -824,14 +832,14 @@
#endif // defined(__BIONIC__)
}
-TEST(unistd, get_cpu_count_from_string) {
+TEST(UNISTD_TEST, get_cpu_count_from_string) {
ASSERT_EQ(0, GetCpuCountFromString(" "));
ASSERT_EQ(1, GetCpuCountFromString("0"));
ASSERT_EQ(40, GetCpuCountFromString("0-39"));
ASSERT_EQ(4, GetCpuCountFromString("0, 1-2, 4\n"));
}
-TEST(unistd, sysconf_SC_NPROCESSORS_ONLN) {
+TEST(UNISTD_TEST, sysconf_SC_NPROCESSORS_ONLN) {
std::string line;
ASSERT_TRUE(android::base::ReadFileToString("/sys/devices/system/cpu/online", &line));
long online_cpus = 0;
@@ -846,7 +854,7 @@
ASSERT_EQ(online_cpus, sysconf(_SC_NPROCESSORS_ONLN));
}
-TEST(unistd, dup2_same) {
+TEST(UNISTD_TEST, dup2_same) {
// POSIX says of dup2:
// If fildes2 is already a valid open file descriptor ...
// [and] fildes is equal to fildes2 ... dup2() shall return