OSDN Git Service

AI 144236: Added new C to stdc++ header files: cassert, cctype, climits, ctime.
authorNiko Catania <>
Thu, 2 Apr 2009 16:31:49 +0000 (09:31 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Thu, 2 Apr 2009 16:31:49 +0000 (09:31 -0700)
  QA Impact:None
  BUG=1601432

Automated import of CL 144236

tests/bionic/libstdc++/Android.mk
tests/bionic/libstdc++/test_cassert.cpp [new file with mode: 0644]
tests/bionic/libstdc++/test_cctype.cpp [new file with mode: 0644]
tests/bionic/libstdc++/test_climits.cpp [new file with mode: 0644]
tests/bionic/libstdc++/test_cstddef.cpp
tests/bionic/libstdc++/test_ctime.cpp [new file with mode: 0644]

index fca89f6..4446c87 100644 (file)
@@ -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 (file)
index 0000000..efe73fe
--- /dev/null
@@ -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 (file)
index 0000000..ad6312b
--- /dev/null
@@ -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 (file)
index 0000000..2e5c59e
--- /dev/null
@@ -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;
+}
index 7526d3c..e918c58 100644 (file)
@@ -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 (file)
index 0000000..f812b31
--- /dev/null
@@ -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;
+}