• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "Test.h"
2 #include "SkString.h"
3 
TestString(skiatest::Reporter * reporter)4 static void TestString(skiatest::Reporter* reporter) {
5     SkString    a;
6     SkString    b((size_t)0);
7     SkString    c("");
8     SkString    d(NULL, 0);
9 
10     REPORTER_ASSERT(reporter, a.isEmpty());
11     REPORTER_ASSERT(reporter, a == b && a == c && a == d);
12 
13     a.set("hello");
14     b.set("hellox", 5);
15     c.set(a);
16     d.resize(5);
17     memcpy(d.writable_str(), "helloz", 5);
18 
19     REPORTER_ASSERT(reporter, !a.isEmpty());
20     REPORTER_ASSERT(reporter, a.size() == 5);
21     REPORTER_ASSERT(reporter, a == b && a == c && a == d);
22     REPORTER_ASSERT(reporter, a.equals("hello", 5));
23     REPORTER_ASSERT(reporter, a.equals("hello"));
24     REPORTER_ASSERT(reporter, !a.equals("help"));
25 
26     SkString    e(a);
27     SkString    f("hello");
28     SkString    g("helloz", 5);
29 
30     REPORTER_ASSERT(reporter, a == e && a == f && a == g);
31 
32     b.set("world");
33     c = b;
34     REPORTER_ASSERT(reporter, a != b && a != c && b == c);
35 
36     a.append(" world");
37     e.append("worldz", 5);
38     e.insert(5, " ");
39     f.set("world");
40     f.prepend("hello ");
41     REPORTER_ASSERT(reporter, a.equals("hello world") && a == e && a == f);
42 
43     a.reset();
44     b.resize(0);
45     REPORTER_ASSERT(reporter, a.isEmpty() && b.isEmpty() && a == b);
46 
47     a.set("a");
48     a.set("ab");
49     a.set("abc");
50     a.set("abcd");
51 
52     a.set("");
53     a.appendS64(72036854775808LL, 0);
54     REPORTER_ASSERT(reporter, a.equals("72036854775808"));
55 
56     a.set("");
57     a.appendS64(-1844674407370LL, 0);
58     REPORTER_ASSERT(reporter, a.equals("-1844674407370"));
59 
60     a.set("");
61     a.appendS64(73709551616LL, 15);
62     REPORTER_ASSERT(reporter, a.equals("000073709551616"));
63 
64     a.set("");
65     a.appendS64(-429496729612LL, 15);
66     REPORTER_ASSERT(reporter, a.equals("-000429496729612"));
67 
68     static const struct {
69         SkScalar    fValue;
70         const char* fString;
71     } gRec[] = {
72         { 0,            "0" },
73         { SK_Scalar1,   "1" },
74         { -SK_Scalar1,  "-1" },
75         { SK_Scalar1/2, "0.5" },
76 #ifdef SK_SCALAR_IS_FLOAT
77         { 3.4028234e38f,   "3.4028235e+38" },
78         { -3.4028234e38f, "-3.4028235e+38" },
79 #endif
80     };
81     for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) {
82         a.reset();
83         a.appendScalar(gRec[i].fValue);
84         REPORTER_ASSERT(reporter, a.size() <= SkStrAppendScalar_MaxSize);
85 //        SkDebugf(" received <%s> expected <%s>\n", a.c_str(), gRec[i].fString);
86         REPORTER_ASSERT(reporter, a.equals(gRec[i].fString));
87     }
88 }
89 
90 #include "TestClassDef.h"
91 DEFINE_TESTCLASS("String", StringTestClass, TestString)
92