# # Copyright (C) 2022 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. import shutil, os # # Perform a mostly normal build. # Since this test imports 'dalvik.annotation.optimization.FastNative' (and CriticalNative), # we put them to src-aotex/ to allow the annotations to be used at javac-compile time, # but remove compiled *-aotex* artifacts afterwards. # # This enables the test to compile with vanilla RI javac and work on either ART or RI. # TODO: The test is currently disabled for RI anyway, presumably because @CriticalNative # has a different ABI and cannot be tested on RI. # # Use release mode to check optimizations do not break JNI. def build(ctx): ctx.default_build(d8_flags=["--release"]) # Remove the *-aotex build artifacts (but keep src-aotex) with dalvik.* annotations. shutil.rmtree(ctx.test_dir / "classes-aotex") if not ctx.jvm: os.remove(ctx.test_dir / "classes-aotex.jar") os.remove(ctx.test_dir / "004-JniTest-aotex.jar")