blob: 1b7315f39574a5a3d525d3c9cf2fccf05b02bca7 [file] [log] [blame]
Elliott Hughes11e45072011-08-16 17:40:46 -07001// Copyright 2011 Google Inc. All Rights Reserved.
2
3#include "object.h"
4#include "common_test.h"
5#include "utils.h"
6
7#include "gtest/gtest.h"
8
9namespace art {
10
11class UtilsTest : public RuntimeTest {
12};
13
14TEST(PrettyDescriptorTest, ArrayReferences) {
15 EXPECT_EQ("java.lang.Class[]", PrettyDescriptor("[Ljava/lang/Class;"));
16 EXPECT_EQ("java.lang.Class[][]", PrettyDescriptor("[[Ljava/lang/Class;"));
17}
18
19TEST(PrettyDescriptorTest, ScalarReferences) {
20 EXPECT_EQ("java.lang.String", PrettyDescriptor("Ljava.lang.String;"));
21 EXPECT_EQ("java.lang.String", PrettyDescriptor("Ljava/lang/String;"));
22}
23
24TEST(PrettyDescriptorTest, PrimitiveArrays) {
25 EXPECT_EQ("boolean[]", PrettyDescriptor("[Z"));
26 EXPECT_EQ("boolean[][]", PrettyDescriptor("[[Z"));
27 EXPECT_EQ("byte[]", PrettyDescriptor("[B"));
28 EXPECT_EQ("byte[][]", PrettyDescriptor("[[B"));
29 EXPECT_EQ("char[]", PrettyDescriptor("[C"));
30 EXPECT_EQ("char[][]", PrettyDescriptor("[[C"));
31 EXPECT_EQ("double[]", PrettyDescriptor("[D"));
32 EXPECT_EQ("double[][]", PrettyDescriptor("[[D"));
33 EXPECT_EQ("float[]", PrettyDescriptor("[F"));
34 EXPECT_EQ("float[][]", PrettyDescriptor("[[F"));
35 EXPECT_EQ("int[]", PrettyDescriptor("[I"));
36 EXPECT_EQ("int[][]", PrettyDescriptor("[[I"));
37 EXPECT_EQ("long[]", PrettyDescriptor("[J"));
38 EXPECT_EQ("long[][]", PrettyDescriptor("[[J"));
39 EXPECT_EQ("short[]", PrettyDescriptor("[S"));
40 EXPECT_EQ("short[][]", PrettyDescriptor("[[S"));
41}
42
43TEST(PrettyDescriptorTest, PrimitiveScalars) {
44 EXPECT_EQ("boolean", PrettyDescriptor("Z"));
45 EXPECT_EQ("byte", PrettyDescriptor("B"));
46 EXPECT_EQ("char", PrettyDescriptor("C"));
47 EXPECT_EQ("double", PrettyDescriptor("D"));
48 EXPECT_EQ("float", PrettyDescriptor("F"));
49 EXPECT_EQ("int", PrettyDescriptor("I"));
50 EXPECT_EQ("long", PrettyDescriptor("J"));
51 EXPECT_EQ("short", PrettyDescriptor("S"));
52}
53
54TEST_F(UtilsTest, PrettyType) {
55 EXPECT_EQ("null", PrettyType(NULL));
56
57 String* s = String::AllocFromModifiedUtf8(0, "");
58 EXPECT_EQ("java.lang.String", PrettyType(s));
59
60 ShortArray* a = ShortArray::Alloc(2);
61 EXPECT_EQ("short[]", PrettyType(a));
62
63 Class* c = class_linker_->FindSystemClass("[Ljava/lang/String;");
64 ASSERT_TRUE(c != NULL);
65 Object* o = ObjectArray<String>::Alloc(c, 0);
66 EXPECT_EQ("java.lang.String[]", PrettyType(o));
67 EXPECT_EQ("java.lang.Class<java.lang.String[]>", PrettyType(o->GetClass()));
68}
69
70} // namespace art