|
| 1 | +package com.uber.nullaway.jspecify; |
| 2 | + |
| 3 | +import com.google.errorprone.BugCheckerRefactoringTestHelper; |
| 4 | +import com.uber.nullaway.NullAway; |
| 5 | +import java.io.IOException; |
| 6 | +import org.junit.Rule; |
| 7 | +import org.junit.Test; |
| 8 | +import org.junit.rules.TemporaryFolder; |
| 9 | + |
| 10 | +/** Tests for combining fix suggestions with JSpecify mode. */ |
| 11 | +public class SuggestedFixesTests { |
| 12 | + |
| 13 | + @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(); |
| 14 | + |
| 15 | + private BugCheckerRefactoringTestHelper makeTestHelper() { |
| 16 | + return BugCheckerRefactoringTestHelper.newInstance(NullAway.class, getClass()) |
| 17 | + .setArgs( |
| 18 | + "-d", |
| 19 | + temporaryFolder.getRoot().getAbsolutePath(), |
| 20 | + "-processorpath", |
| 21 | + SuggestedFixesTests.class.getProtectionDomain().getCodeSource().getLocation().getPath(), |
| 22 | + "-XepOpt:NullAway:AnnotatedPackages=com.uber", |
| 23 | + "-XepOpt:NullAway:JSpecifyMode=true", |
| 24 | + "-XepOpt:NullAway:SuggestSuppressions=true"); |
| 25 | + } |
| 26 | + |
| 27 | + @Test |
| 28 | + public void suggestSuppressionForAssigningNullableIntoNonNullArray() throws IOException { |
| 29 | + makeTestHelper() |
| 30 | + .addInputLines( |
| 31 | + "Test.java", |
| 32 | + "package com.uber;", |
| 33 | + "import org.jspecify.annotations.Nullable;", |
| 34 | + "class Test {", |
| 35 | + " void test() {", |
| 36 | + " Object[] arr = new Object[1];", |
| 37 | + " arr[0] = null;", |
| 38 | + " }", |
| 39 | + "}") |
| 40 | + .addOutputLines( |
| 41 | + "out/Test.java", |
| 42 | + "package com.uber;", |
| 43 | + "import org.jspecify.annotations.Nullable;", |
| 44 | + "class Test {", |
| 45 | + " @SuppressWarnings(\"NullAway\")", |
| 46 | + " void test() {", |
| 47 | + " Object[] arr = new Object[1];", |
| 48 | + " arr[0] = null;", |
| 49 | + " }", |
| 50 | + "}") |
| 51 | + .doTest(); |
| 52 | + } |
| 53 | +} |
0 commit comments