summaryrefslogtreecommitdiff
path: root/compilationTests/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'compilationTests/src/test/java')
-rw-r--r--compilationTests/src/test/java/android/databinding/compilationTest/BaseCompilationTest.java20
-rw-r--r--compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java19
2 files changed, 36 insertions, 3 deletions
diff --git a/compilationTests/src/test/java/android/databinding/compilationTest/BaseCompilationTest.java b/compilationTests/src/test/java/android/databinding/compilationTest/BaseCompilationTest.java
index e008c828..08bfde50 100644
--- a/compilationTests/src/test/java/android/databinding/compilationTest/BaseCompilationTest.java
+++ b/compilationTests/src/test/java/android/databinding/compilationTest/BaseCompilationTest.java
@@ -25,10 +25,13 @@ import org.junit.rules.TestName;
import android.databinding.tool.store.Location;
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
@@ -258,8 +261,8 @@ public class BaseCompilationTest {
}
builder.directory(testFolder);
Process process = builder.start();
- String output = IOUtils.toString(process.getInputStream());
- String error = IOUtils.toString(process.getErrorStream());
+ String output = collect(process.getInputStream());
+ String error = collect(process.getErrorStream());
int result = process.waitFor();
return new CompilationResult(result, output, error);
}
@@ -269,5 +272,16 @@ public class BaseCompilationTest {
gw.setExecutable(true);
}
-
+ /**
+ * Use this instead of IO utils so that we can easily log the output when necessary
+ */
+ private static String collect(InputStream stream) throws IOException {
+ StringBuilder sb = new StringBuilder();
+ String line;
+ final BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
+ while ((line = reader.readLine()) != null) {
+ sb.append(line).append("\n");
+ }
+ return sb.toString();
+ }
}
diff --git a/compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java b/compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java
index 84d4459f..229323ff 100644
--- a/compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java
+++ b/compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java
@@ -228,6 +228,25 @@ public class SimpleCompilationTest extends BaseCompilationTest {
}
@Test
+ public void testModuleDependencyChange() throws IOException, URISyntaxException,
+ InterruptedException {
+ prepareApp(toMap(KEY_DEPENDENCIES, "compile project(':module1')",
+ KEY_SETTINGS_INCLUDES, "include ':app'\ninclude ':module1'"));
+ prepareModule("module1", "com.example.module1", toMap(
+ KEY_DEPENDENCIES, "compile 'com.android.support:appcompat-v7:23.1.1'"
+ ));
+ copyResourceTo("/layout/basic_layout.xml", "/module1/src/main/res/layout/module_layout.xml");
+ copyResourceTo("/layout/basic_layout.xml", "/app/src/main/res/layout/app_layout.xml");
+ CompilationResult result = runGradle("assembleDebug");
+ assertEquals(result.error, 0, result.resultCode);
+ File moduleFolder = new File(testFolder, "module1");
+ copyResourceTo("/module_build.gradle", new File(moduleFolder, "build.gradle"),
+ toMap());
+ result = runGradle("assembleDebug");
+ assertEquals(result.error, 0, result.resultCode);
+ }
+
+ @Test
public void testTwoLevelDependency() throws IOException, URISyntaxException, InterruptedException {
prepareApp(toMap(KEY_DEPENDENCIES, "compile project(':module1')",
KEY_SETTINGS_INCLUDES, "include ':app'\ninclude ':module1'\n"