test_ios_base.cpp revision 8974d36b49996aa59a926a53b830332890021e4c
1/* -*- c++ -*- */
2/*
3 * Copyright (C) 2010 The Android Open Source Project
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *  * Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 *  * Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in
13 *    the documentation and/or other materials provided with the
14 *    distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
19 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
20 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
23 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#include "../include/ios_base.h"
31#ifndef ANDROID_ASTL_IOS_BASE__
32#error "Wrong header included!!"
33#endif
34#include "common.h"
35
36namespace android {
37class ios: public std::ios_base {
38  public:
39};
40
41bool testDefaultPrecision() {
42    ios s;
43    EXPECT_TRUE(s.precision() == 6);
44    return true;
45}
46
47bool testSetPrecision() {
48    ios s;
49    EXPECT_TRUE(s.precision(10) == 6);
50    EXPECT_TRUE(s.precision() == 10);
51    EXPECT_TRUE(s.precision(-1) == 10); // no-op
52    EXPECT_TRUE(s.precision() == 10);
53    return true;
54}
55
56bool testDefaultWidth() {
57    ios s;
58    EXPECT_TRUE(s.width() == 0);
59    return true;
60}
61
62bool testSetWidth() {
63    ios s;
64    EXPECT_TRUE(s.width(10) == 0);
65    EXPECT_TRUE(s.width() == 10);
66    EXPECT_TRUE(s.width(-1) == 10); // no-op
67    EXPECT_TRUE(s.width() == 10);
68    return true;
69}
70
71}  // namespace android
72
73int main(int argc, char **argv){
74    FAIL_UNLESS(testDefaultPrecision);
75    FAIL_UNLESS(testSetPrecision);
76    FAIL_UNLESS(testDefaultWidth);
77    FAIL_UNLESS(testSetWidth);
78    return kPassed;
79}
80