16ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic/*
26ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * Copyright (C) 2017 The Android Open Source Project
36ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic *
46ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * Licensed under the Apache License, Version 2.0 (the "License");
56ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * you may not use this file except in compliance with the License.
66ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * You may obtain a copy of the License at
76ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic *
86ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic *      http://www.apache.org/licenses/LICENSE-2.0
96ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic *
106ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * Unless required by applicable law or agreed to in writing, software
116ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * distributed under the License is distributed on an "AS IS" BASIS,
126ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * See the License for the specific language governing permissions and
146ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic * limitations under the License.
156ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic */
166ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic
176ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovicpackage com.android.dx.rop.cst;
186ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic
196ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovicimport com.android.dx.rop.type.Type;
206ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovicimport org.junit.Test;
216ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic
226ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovicimport static org.junit.Assert.assertEquals;
236ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovicimport static org.junit.Assert.assertFalse;
246ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovicimport static org.junit.Assert.assertTrue;
256ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic
266ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovicpublic class CstTypeTest {
276ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic
286ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic
296ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic    @Test
306ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic    public void checkClearInternTable() {
316ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        CstType boolArray = CstType.BOOLEAN_ARRAY;
326ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        assertTrue(boolArray == CstType.intern(Type.BOOLEAN_ARRAY));
336ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        CstType myClass = CstType.intern(Type.intern("Lcom/example/Foo;"));
346ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic
356ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        CstType.clearInternTable();
366ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        Type.clearInternTable();
376ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic
386ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        assertTrue(boolArray == CstType.intern(Type.BOOLEAN_ARRAY));
396ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        CstType myClass2 = CstType.intern(Type.intern("Lcom/example/Foo;"));
406ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        assertEquals(myClass.getClassType(), myClass2.getClassType());
416ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic        assertFalse(myClass == myClass2);
426ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic    }
436ddec9b70e3592b19a7a9d9e1800d680a8ab14b9Ivan Gavrilovic}