45 lines
1.3 KiB
Python
Executable File
45 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Copyright (C) 2021 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
TEMPLATE = """
|
|
public class Main {
|
|
public static void main(String[] args) {
|
|
Main m = new Main();
|
|
System.out.println(m.foo(-1, -1));
|
|
System.out.println(m.foo(-1, +1));
|
|
System.out.println(m.foo(+1, -1));
|
|
System.out.println(m.foo(+1, +1));
|
|
System.out.println(m.value);
|
|
}
|
|
public int foo(int a, int b) {
|
|
if ( a >= 0 ) {
|
|
if ( b < 0 ) {
|
|
BODY
|
|
return 2;
|
|
}
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
Object lock = new Object();
|
|
int value = 0;
|
|
}
|
|
"""
|
|
|
|
with open("src/Main.java", "wt") as dst:
|
|
body = " ".join(["synchronized(lock) { value++; }"] * 512)
|
|
dst.write(TEMPLATE.strip().replace("BODY", body))
|