* tests/regression/base/All.java,
[cacao.git] / tests / regression / bugzilla / PR58.java
1 /* tests/regression/bugzilla/PR58.java
2
3    Copyright (C) 2008
4    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
5
6    This file is part of CACAO.
7
8    This program is free software; you can redistribute it and/or
9    modify it under the terms of the GNU General Public License as
10    published by the Free Software Foundation; either version 2, or (at
11    your option) any later version.
12
13    This program is distributed in the hope that it will be useful, but
14    WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16    General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21    02110-1301, USA.
22
23 */
24
25
26 import org.junit.Test;
27 import static org.junit.Assert.*;
28
29 import java.io.*;
30
31 public class PR58 {
32     class x extends y {}
33     class y {}
34
35     @Test
36     public void testSuperClass() {
37         // Delete the class file which is extended.
38         new File("PR58$y.class").delete();
39
40         try {
41             Class.forName("PR58$x");
42             fail("Should throw NoClassDefFoundError");
43         }
44         catch (ClassNotFoundException error) {
45             fail("Unexpected exception: " + error);
46         }
47         catch (NoClassDefFoundError success) {
48             // Check if the cause is correct.
49             assertTrue(success.getCause() instanceof ClassNotFoundException);
50         }
51     }
52
53     interface i {}
54     class j implements i {}
55
56     @Test
57     public void testSuperInterface() {
58         // Delete the interface file which is implemented.
59         new File("PR58$i.class").delete();
60
61         try {
62             Class.forName("PR58$j");
63             fail("Should throw NoClassDefFoundError");
64         }
65         catch (ClassNotFoundException error) {
66             fail("Unexpected exception: " + error);
67         }
68         catch (NoClassDefFoundError success) {
69             // Check if the cause is correct.
70             assertTrue(success.getCause() instanceof ClassNotFoundException);
71         }
72     }
73 }