blob: 58180e31a7d8f6f5b912df34db14c81a04890bc6 [file] [log] [blame]
// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.utils;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Test;
public class DescriptorUtilsTest {
@Test
public void toShorty() throws IOException {
assertEquals("Z", DescriptorUtils.javaTypeToShorty("boolean"));
assertEquals("B", DescriptorUtils.javaTypeToShorty("byte"));
assertEquals("S", DescriptorUtils.javaTypeToShorty("short"));
assertEquals("C", DescriptorUtils.javaTypeToShorty("char"));
assertEquals("I", DescriptorUtils.javaTypeToShorty("int"));
assertEquals("J", DescriptorUtils.javaTypeToShorty("long"));
assertEquals("F", DescriptorUtils.javaTypeToShorty("float"));
assertEquals("D", DescriptorUtils.javaTypeToShorty("double"));
assertEquals("L", DescriptorUtils.javaTypeToShorty("int[]"));
assertEquals("L", DescriptorUtils.javaTypeToShorty("int[][]"));
assertEquals("L", DescriptorUtils.javaTypeToShorty("java.lang.Object"));
assertEquals("L", DescriptorUtils.javaTypeToShorty("a.b.C"));
}
@Test
public void toDescriptor() throws IOException {
assertEquals("Z", DescriptorUtils.javaTypeToDescriptor("boolean"));
assertEquals("B", DescriptorUtils.javaTypeToDescriptor("byte"));
assertEquals("S", DescriptorUtils.javaTypeToDescriptor("short"));
assertEquals("C", DescriptorUtils.javaTypeToDescriptor("char"));
assertEquals("I", DescriptorUtils.javaTypeToDescriptor("int"));
assertEquals("J", DescriptorUtils.javaTypeToDescriptor("long"));
assertEquals("F", DescriptorUtils.javaTypeToDescriptor("float"));
assertEquals("D", DescriptorUtils.javaTypeToDescriptor("double"));
assertEquals("[I", DescriptorUtils.javaTypeToDescriptor("int[]"));
assertEquals("[[I", DescriptorUtils.javaTypeToDescriptor("int[][]"));
assertEquals("Ljava/lang/Object;", DescriptorUtils.javaTypeToDescriptor("java.lang.Object"));
assertEquals("La/b/C;", DescriptorUtils.javaTypeToDescriptor("a.b.C"));
}
@Test
public void fromDescriptor() throws IOException {
String obj = "Ljava/lang/Object;";
assertEquals("Object", DescriptorUtils.getSimpleClassNameFromDescriptor(obj));
assertEquals("java.lang.Object", DescriptorUtils.getClassNameFromDescriptor(obj));
assertEquals("java.lang", DescriptorUtils.getPackageNameFromDescriptor(obj));
assertEquals("java/lang/Object", DescriptorUtils.getClassBinaryNameFromDescriptor(obj));
}
@Test
public void toJavaType() throws IOException {
assertEquals("boolean", DescriptorUtils.descriptorToJavaType("Z"));
assertEquals("byte", DescriptorUtils.descriptorToJavaType("B"));
assertEquals("short", DescriptorUtils.descriptorToJavaType("S"));
assertEquals("char", DescriptorUtils.descriptorToJavaType("C"));
assertEquals("int", DescriptorUtils.descriptorToJavaType("I"));
assertEquals("long", DescriptorUtils.descriptorToJavaType("J"));
assertEquals("float", DescriptorUtils.descriptorToJavaType("F"));
assertEquals("double", DescriptorUtils.descriptorToJavaType("D"));
assertEquals("int[]", DescriptorUtils.descriptorToJavaType("[I"));
assertEquals("int[][]", DescriptorUtils.descriptorToJavaType("[[I"));
assertEquals("java.lang.Object", DescriptorUtils.descriptorToJavaType("Ljava/lang/Object;"));
assertEquals("a.b.C", DescriptorUtils.descriptorToJavaType("La/b/C;"));
}
}