diff options
author | Niko Catania <> | 2009-04-02 09:31:49 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-04-02 09:31:49 -0700 |
commit | 84011c7599ab8a4463cefda5e8ce8a59987640d8 (patch) | |
tree | c5fcbd16b67a68b4c2399fb2722ede17cd1504c5 | |
parent | 3cb2639f22f8aaf46852c9f03e825e05fc7e7362 (diff) | |
download | extras-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.mk | 6 | ||||
-rw-r--r-- | tests/bionic/libstdc++/test_cassert.cpp | 46 | ||||
-rw-r--r-- | tests/bionic/libstdc++/test_cctype.cpp | 96 | ||||
-rw-r--r-- | tests/bionic/libstdc++/test_climits.cpp | 82 | ||||
-rw-r--r-- | tests/bionic/libstdc++/test_cstddef.cpp | 1 | ||||
-rw-r--r-- | tests/bionic/libstdc++/test_ctime.cpp | 106 |
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; +} |