summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiko Catania <>2009-04-02 09:31:49 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-04-02 09:31:49 -0700
commit84011c7599ab8a4463cefda5e8ce8a59987640d8 (patch)
treec5fcbd16b67a68b4c2399fb2722ede17cd1504c5
parent3cb2639f22f8aaf46852c9f03e825e05fc7e7362 (diff)
downloadextras-84011c7599ab8a4463cefda5e8ce8a59987640d8.tar.gz
AI 144236: Added new C to stdc++ header files: cassert, cctype, climits, ctime.
QA Impact:None BUG=1601432 Automated import of CL 144236
-rw-r--r--tests/bionic/libstdc++/Android.mk6
-rw-r--r--tests/bionic/libstdc++/test_cassert.cpp46
-rw-r--r--tests/bionic/libstdc++/test_cctype.cpp96
-rw-r--r--tests/bionic/libstdc++/test_climits.cpp82
-rw-r--r--tests/bionic/libstdc++/test_cstddef.cpp1
-rw-r--r--tests/bionic/libstdc++/test_ctime.cpp106
6 files changed, 335 insertions, 2 deletions
diff --git a/tests/bionic/libstdc++/Android.mk b/tests/bionic/libstdc++/Android.mk
index fca89f6b..4446c87f 100644
--- a/tests/bionic/libstdc++/Android.mk
+++ b/tests/bionic/libstdc++/Android.mk
@@ -58,7 +58,11 @@ define host-test
endef
sources := \
- test_cstddef.cpp
+ test_cassert.cpp \
+ test_cctype.cpp \
+ test_climits.cpp \
+ test_cstddef.cpp \
+ test_ctime.cpp
$(call host-test, $(sources))
$(call device-test, $(sources))
diff --git a/tests/bionic/libstdc++/test_cassert.cpp b/tests/bionic/libstdc++/test_cassert.cpp
new file mode 100644
index 00000000..efe73fe5
--- /dev/null
+++ b/tests/bionic/libstdc++/test_cassert.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+// Test that including cassert works.
+#include <cassert>
+
+namespace {
+const int kPassed = 0;
+} // anonymous namespace
+
+namespace android
+{
+#ifndef assert
+#error "assert must be a macro"
+#endif
+} // android namespace
+
+int main(int argc, char **argv)
+{
+ return kPassed;
+}
diff --git a/tests/bionic/libstdc++/test_cctype.cpp b/tests/bionic/libstdc++/test_cctype.cpp
new file mode 100644
index 00000000..ad6312b6
--- /dev/null
+++ b/tests/bionic/libstdc++/test_cctype.cpp
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <cctype>
+
+namespace {
+const int kPassed = 0;
+} // anonymous namespace
+
+namespace android
+{
+#ifdef isalnum
+#error "should be a real function"
+#endif
+#ifdef isalpha
+#error "should be a real function"
+#endif
+#ifdef iscntrl
+#error "should be a real function"
+#endif
+#ifdef isdigit
+#error "should be a real function"
+#endif
+#ifdef isgraph
+#error "should be a real function"
+#endif
+#ifdef islower
+#error "should be a real function"
+#endif
+#ifdef isprint
+#error "should be a real function"
+#endif
+#ifdef ispunct
+#error "should be a real function"
+#endif
+#ifdef isspace
+#error "should be a real function"
+#endif
+#ifdef isupper
+#error "should be a real function"
+#endif
+#ifdef isxdigit
+#error "should be a real function"
+#endif
+#ifdef tolower
+#error "should be a real function"
+#endif
+#ifdef toupper
+#error "should be a real function"
+#endif
+
+using std::isalnum;
+using std::isdigit;
+using std::isprint;
+using std::isupper;
+using std::tolower;
+using std::isalpha;
+using std::isgraph;
+using std::ispunct;
+using std::isxdigit;
+using std::toupper;
+using std::iscntrl;
+using std::islower;
+using std::isspace;
+
+} // namespace android
+
+int main(int argc, char **argv)
+{
+ return kPassed;
+}
diff --git a/tests/bionic/libstdc++/test_climits.cpp b/tests/bionic/libstdc++/test_climits.cpp
new file mode 100644
index 00000000..2e5c59ef
--- /dev/null
+++ b/tests/bionic/libstdc++/test_climits.cpp
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#include <climits>
+
+namespace {
+const int kPassed = 0;
+const int kFailed = 1;
+#define FAIL_UNLESS(f) if (!android::f()) return kFailed;
+} // anonymous namespace
+
+namespace android
+{
+bool testLimits()
+{
+ // char
+ volatile char c1 = CHAR_BIT;
+ volatile char c2 = CHAR_MAX;
+ volatile char c3 = CHAR_MIN;
+
+ // int
+ volatile int i1 = INT_MAX;
+ volatile int i2 = INT_MIN;
+
+ // short
+ volatile short s1 = SHRT_MAX;
+ volatile short s2 = SHRT_MIN;
+
+ // long
+ volatile long l1 = LONG_MAX;
+ volatile long l2 = LONG_MIN;
+
+ // long long
+ volatile long long ll1 = LLONG_MAX;
+ volatile long long ll2 = LLONG_MIN;
+
+ volatile unsigned long mb = MB_LEN_MAX;
+
+ // signed char
+ volatile signed char sc1 = SCHAR_MIN;
+ volatile signed char sc2 = SCHAR_MAX;
+
+ // unsigned
+ volatile unsigned int ui = UINT_MAX;
+ volatile unsigned short us = USHRT_MAX;
+ volatile unsigned long ul = ULONG_MAX;
+ volatile unsigned long long ull = ULLONG_MAX;
+
+ return true;
+}
+
+} // namespace android
+
+int main(int argc, char **argv)
+{
+ FAIL_UNLESS(testLimits);
+ return kPassed;
+}
diff --git a/tests/bionic/libstdc++/test_cstddef.cpp b/tests/bionic/libstdc++/test_cstddef.cpp
index 7526d3c5..e918c589 100644
--- a/tests/bionic/libstdc++/test_cstddef.cpp
+++ b/tests/bionic/libstdc++/test_cstddef.cpp
@@ -1,4 +1,3 @@
-/* -*- c++ -*- */
/*
* Copyright (C) 2009 The Android Open Source Project
* All rights reserved.
diff --git a/tests/bionic/libstdc++/test_ctime.cpp b/tests/bionic/libstdc++/test_ctime.cpp
new file mode 100644
index 00000000..f812b312
--- /dev/null
+++ b/tests/bionic/libstdc++/test_ctime.cpp
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <ctime>
+
+namespace {
+const int kPassed = 0;
+const int kFailed = 1;
+#define FAIL_UNLESS(f) if (!android::f()) return kFailed;
+} // anonymous namespace
+
+namespace android
+{
+#ifndef CLOCKS_PER_SEC
+#error "CLOCKS_PER_SEC must be a macro"
+#endif
+
+#ifdef clock
+#error "should be a real function"
+#endif
+#ifdef difftime
+#error "should be a real function"
+#endif
+#ifdef mktime
+#error "should be a real function"
+#endif
+#ifdef time
+#error "should be a real function"
+#endif
+#ifdef asctime
+#error "should be a real function"
+#endif
+#ifdef ctime
+#error "should be a real function"
+#endif
+#ifdef gmtime
+#error "should be a real function"
+#endif
+#ifdef localtime
+#error "should be a real function"
+#endif
+#ifdef strftime
+#error "should be a real function"
+#endif
+
+using std::clock;
+using std::difftime;
+using std::mktime;
+using std::time;
+using std::asctime;
+using std::ctime;
+using std::gmtime;
+using std::localtime;
+using std::strftime;
+
+// Check various types are declared in the std namespace.
+// This is a compilation test.
+bool testTypesStd()
+{
+ volatile std::clock_t clock;
+ volatile std::time_t time;
+ volatile std::tm better_time;
+ return true;
+}
+
+bool testGetClock()
+{
+ volatile std::clock_t clock1 = std::clock();
+ volatile std::clock_t clock2 = std::clock();
+ if (clock2 < clock1) return false;
+ return true;
+}
+
+} // namespace android
+
+int main(int argc, char **argv)
+{
+ FAIL_UNLESS(testTypesStd);
+ FAIL_UNLESS(testGetClock);
+ return kPassed;
+}