annotate test/compiler/7179138/Test7179138_2.java @ 14094:3f27e57439ed

Truffle/Instrumentation: significant rearrangement (including moved class) and extension of the Truffle Instrumentation Framework. New interfaces include DebugContext (which can be attached to the ExecutionContext), through which access is provided to possibly language-specific (a) node instrumentation, (b) debug services manager, (c) notification when programs halt, (d) display of language values, and (e) display of variable identifiers.
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Mon, 03 Feb 2014 20:58:23 -0800
parents 751bd303aa45
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6186
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
1 /*
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
2 * Copyright 2012 Skip Balk. All Rights Reserved.
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
4 *
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
7 * published by the Free Software Foundation.
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
8 *
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
13 * accompanied this code).
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
14 *
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
18 *
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
21 * questions.
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
22 */
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
23
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
24 /*
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
25 * @test
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
26 * @bug 7179138
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
27 * @summary Incorrect result with String concatenation optimization
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
28 * @run main/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation Test7179138_2
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
29 *
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
30 * @author Skip Balk
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
31 */
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
32
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
33 public class Test7179138_2 {
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
34 public static void main(String[] args) throws Exception {
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
35 System.out.println("Java Version: " + System.getProperty("java.vm.version"));
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
36 long[] durations = new long[60];
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
37 for (int i = 0; i < 100000; i++) {
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
38 // this empty for-loop is required to reproduce this bug
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
39 for (long duration : durations) {
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
40 // do nothing
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
41 }
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
42 {
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
43 String s = "test";
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
44 int len = s.length();
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
45
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
46 s = s + s;
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
47 len = len + len;
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
48
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
49 s = s + s;
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
50 len = len + len;
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
51
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
52 s = s + s;
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
53 len = len + len;
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
54
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
55 if (s.length() != len) {
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
56 System.out.println("Failed at iteration: " + i);
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
57 System.out.println("Length mismatch: " + s.length() + " <> " + len);
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
58 System.out.println("Expected: \"" + "test" + "test" + "test" + "test" + "test" + "test" + "test" + "test" + "\"");
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
59 System.out.println("Actual: \"" + s + "\"");
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
60 System.exit(0);
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
61 }
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
62 }
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
63 }
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
64 }
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
65 }
751bd303aa45 7179138: Incorrect result with String concatenation optimization
kvn
parents:
diff changeset
66