jdk

Форк
0
61 строка · 2.4 Кб
1
/*
2
 * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
3
 * Copyright (c) 2019, Arm Limited. All rights reserved.
4
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5
 *
6
 * This code is free software; you can redistribute it and/or modify it
7
 * under the terms of the GNU General Public License version 2 only, as
8
 * published by the Free Software Foundation.
9
 *
10
 * This code is distributed in the hope that it will be useful, but WITHOUT
11
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13
 * version 2 for more details (a copy is included in the LICENSE file that
14
 * accompanied this code).
15
 *
16
 * You should have received a copy of the GNU General Public License version
17
 * 2 along with this work; if not, write to the Free Software Foundation,
18
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19
 *
20
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21
 * or visit www.oracle.com if you need additional information or have any
22
 * questions.
23
 */
24

25
/*
26
 * @test
27
 * @bug 8215792
28
 * @summary Fix a bug in AArch64 string intrinsics
29
 *
30
 * @run main/othervm compiler.intrinsics.Test8215792
31
 * @run main/othervm -XX:-CompactStrings compiler.intrinsics.Test8215792
32
 */
33

34
package compiler.intrinsics;
35

36
public class Test8215792 {
37

38
    private static final int ITERATIONS = 10000;
39
    private static final String pattern = "01234567890123456789";
40

41
    public static void main(String[] args) {
42

43
        // Repeat many times to trigger compilation
44
        for (int iter = 0; iter < ITERATIONS; iter++) {
45
            StringBuilder str1 = new StringBuilder("ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789");
46
            StringBuilder str2 = new StringBuilder("\u4f60\u598dCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789");
47

48
            for (int i = 0; i < 20; i++) {
49
                // Remove one character from the tail
50
                str1.setLength(str1.length() - 1);
51
                str2.setLength(str2.length() - 1);
52
                // Pattern string should not be found after characters removed from the tail
53
                if (str1.indexOf(pattern) != -1 || str2.indexOf(pattern) != -1) {
54
                    System.out.println("FAILED");
55
                    System.exit(1);
56
                }
57
            }
58
        }
59
        System.out.println("PASSED");
60
    }
61
}
62

63

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.