Add jps test for Android
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="FacetManager">
|
||||||
|
<facet type="android" name="Android">
|
||||||
|
<configuration>
|
||||||
|
<option name="GEN_FOLDER_RELATIVE_PATH_APT" value="/gen" />
|
||||||
|
<option name="GEN_FOLDER_RELATIVE_PATH_AIDL" value="/gen" />
|
||||||
|
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/AndroidManifest.xml" />
|
||||||
|
<option name="RES_FOLDER_RELATIVE_PATH" value="/res" />
|
||||||
|
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/assets" />
|
||||||
|
<option name="LIBS_FOLDER_RELATIVE_PATH" value="/libs" />
|
||||||
|
<option name="USE_CUSTOM_APK_RESOURCE_FOLDER" value="false" />
|
||||||
|
<option name="CUSTOM_APK_RESOURCE_FOLDER" value="" />
|
||||||
|
<option name="USE_CUSTOM_COMPILER_MANIFEST" value="false" />
|
||||||
|
<option name="CUSTOM_COMPILER_MANIFEST" value="" />
|
||||||
|
<option name="APK_PATH" value="" />
|
||||||
|
<option name="LIBRARY_PROJECT" value="false" />
|
||||||
|
<option name="RUN_PROCESS_RESOURCES_MAVEN_TASK" value="true" />
|
||||||
|
<option name="GENERATE_UNSIGNED_APK" value="false" />
|
||||||
|
<option name="CUSTOM_DEBUG_KEYSTORE_PATH" value="" />
|
||||||
|
<option name="PACK_TEST_CODE" value="false" />
|
||||||
|
<option name="RUN_PROGUARD" value="false" />
|
||||||
|
<option name="PROGUARD_CFG_PATH" value="/proguard-project.txt" />
|
||||||
|
<resOverlayFolders>
|
||||||
|
<path>/res-overlay</path>
|
||||||
|
</resOverlayFolders>
|
||||||
|
<includeSystemProguardFile>true</includeSystemProguardFile>
|
||||||
|
<includeAssetsFromLibraries>false</includeAssetsFromLibraries>
|
||||||
|
<additionalNativeLibs />
|
||||||
|
</configuration>
|
||||||
|
</facet>
|
||||||
|
</component>
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="jdk" jdkName="Android 2.3.3 Platform" jdkType="Android SDK" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CompilerConfiguration">
|
||||||
|
<option name="DEFAULT_COMPILER" value="Javac" />
|
||||||
|
<excludeFromCompile>
|
||||||
|
<directory url="file://$PROJECT_DIR$/gen" includeSubdirectories="true" />
|
||||||
|
</excludeFromCompile>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/android-module.iml" filepath="$PROJECT_DIR$/android_module.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="Android_SDK" project-jdk-type="Android SDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">android1</string>
|
||||||
|
</resources>
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2012 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.jet.compiler.android;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
public class MyActivity extends Activity {
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
System.out.println(R.string.app_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
<orderEntry type="module" module-name="frontend.java" />
|
<orderEntry type="module" module-name="frontend.java" />
|
||||||
<orderEntry type="module" module-name="frontend" />
|
<orderEntry type="module" module-name="frontend" />
|
||||||
<orderEntry type="module" module-name="backend" />
|
<orderEntry type="module" module-name="backend" />
|
||||||
|
<orderEntry type="library" name="jps-test" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
|
|||||||
@@ -62,9 +62,6 @@ public class CodegenTestsOnAndroidRunner {
|
|||||||
|
|
||||||
// If map is empty => there are no failed tests
|
// If map is empty => there are no failed tests
|
||||||
if (resultMap.isEmpty()) {
|
if (resultMap.isEmpty()) {
|
||||||
// Clear tmp folder where we run android tests
|
|
||||||
FileUtil.delete(new File(pathManager.getTmpFolder()));
|
|
||||||
|
|
||||||
statistics = parseOutputForTestsNumberIfTestsPassed(resultOutput);
|
statistics = parseOutputForTestsNumberIfTestsPassed(resultOutput);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
+60
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2012 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.jet.compiler.android;
|
||||||
|
|
||||||
|
import org.jetbrains.jps.builders.JpsBuildTestCase;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class AndroidJpsBuildTestCase extends JpsBuildTestCase {
|
||||||
|
private static final String PROJECT_NAME = "android-module";
|
||||||
|
private static final String SDK_NAME = "Android_SDK";
|
||||||
|
|
||||||
|
private final File workDir = new File(AndroidRunner.getPathManager().getTmpFolder());
|
||||||
|
|
||||||
|
public void doTest() {
|
||||||
|
initProject();
|
||||||
|
rebuildAll();
|
||||||
|
makeAll().assertSuccessful();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProjectName() {
|
||||||
|
return "android-module";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void runTest() throws Throwable {
|
||||||
|
doTest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "AndroidJpsTest";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected File doGetProjectDir() throws IOException {
|
||||||
|
return workDir;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initProject() {
|
||||||
|
addJdk(SDK_NAME, AndroidRunner.getPathManager().getPlatformFolderInAndroidSdk() + "/android.jar");
|
||||||
|
loadProject(workDir.getAbsolutePath() + File.separator + PROJECT_NAME + ".ipr");
|
||||||
|
}
|
||||||
|
}
|
||||||
+23
-12
@@ -19,6 +19,7 @@ package org.jetbrains.jet.compiler.android;
|
|||||||
import com.google.common.io.Files;
|
import com.google.common.io.Files;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import junit.framework.TestSuite;
|
import junit.framework.TestSuite;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.compiler.CodegenTestsOnAndroidRunner;
|
import org.jetbrains.jet.compiler.CodegenTestsOnAndroidRunner;
|
||||||
import org.jetbrains.jet.compiler.PathManager;
|
import org.jetbrains.jet.compiler.PathManager;
|
||||||
|
|
||||||
@@ -30,24 +31,34 @@ import java.io.File;
|
|||||||
|
|
||||||
public class AndroidRunner extends TestSuite {
|
public class AndroidRunner extends TestSuite {
|
||||||
|
|
||||||
|
private static PathManager pathManager;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static PathManager getPathManager() {
|
||||||
|
if (pathManager == null) {
|
||||||
|
File tmpFolder = Files.createTempDir();
|
||||||
|
System.out.println("Created temporary folder for running android tests: " + tmpFolder.getAbsolutePath());
|
||||||
|
File rootFolder = new File("");
|
||||||
|
pathManager = new PathManager(rootFolder.getAbsolutePath(), tmpFolder.getAbsolutePath());
|
||||||
|
}
|
||||||
|
return pathManager;
|
||||||
|
}
|
||||||
|
|
||||||
public static TestSuite suite() throws Throwable {
|
public static TestSuite suite() throws Throwable {
|
||||||
File tmpFolder = Files.createTempDir();
|
PathManager pathManager = getPathManager();
|
||||||
System.out.println("Created temporary folder for running android tests: " + tmpFolder.getAbsolutePath());
|
|
||||||
File rootFolder = new File("");
|
|
||||||
PathManager pathManager = new PathManager(rootFolder.getAbsolutePath(), tmpFolder.getAbsolutePath());
|
|
||||||
|
|
||||||
FileUtil.copyDir(new File(pathManager.getAndroidModuleRoot()), new File(pathManager.getTmpFolder()));
|
FileUtil.copyDir(new File(pathManager.getAndroidModuleRoot()), new File(pathManager.getTmpFolder()));
|
||||||
|
|
||||||
try {
|
CodegenTestsOnAndroidGenerator.generate(pathManager);
|
||||||
CodegenTestsOnAndroidGenerator.generate(pathManager);
|
|
||||||
}
|
|
||||||
catch(Throwable e) {
|
|
||||||
FileUtil.delete(new File(pathManager.getTmpFolder()));
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println("Run tests on android...");
|
System.out.println("Run tests on android...");
|
||||||
return CodegenTestsOnAndroidRunner.getTestSuite(pathManager);
|
TestSuite suite = CodegenTestsOnAndroidRunner.getTestSuite(pathManager);
|
||||||
|
suite.addTest(new AndroidJpsBuildTestCase());
|
||||||
|
return suite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
// Clear tmp folder where we run android tests
|
||||||
|
FileUtil.delete(new File(pathManager.getTmpFolder()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user