| # | 
 | # 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") |