diff options
author | Chase Qi <chase.qi@linaro.org> | 2015-02-03 11:55:55 +0800 |
---|---|---|
committer | Chase Qi <chase.qi@linaro.org> | 2015-02-03 11:55:55 +0800 |
commit | 52c703ebeb7609bf52076d16b0e297c62324d1fa (patch) | |
tree | 236d4d7bb108fa7aff2a71d8fca4b9f9ddfa4060 /android | |
parent | eac617527100ba5f6aebb02098860822c4f77e3b (diff) |
android: add gparser.apk and its source code
Diffstat (limited to 'android')
20 files changed, 256 insertions, 1 deletions
diff --git a/android/.DS_Store b/android/apks/.DS_Store Binary files differindex 73a8c64..3ec5feb 100644 --- a/android/.DS_Store +++ b/android/apks/.DS_Store diff --git a/android/apks/gparser/.DS_Store b/android/apks/gparser/.DS_Store Binary files differnew file mode 100644 index 0000000..9a25e79 --- /dev/null +++ b/android/apks/gparser/.DS_Store diff --git a/android/apks/gparser/gparser.apk b/android/apks/gparser/gparser.apk Binary files differnew file mode 100644 index 0000000..55d19bd --- /dev/null +++ b/android/apks/gparser/gparser.apk diff --git a/android/apks/gparser/main/.DS_Store b/android/apks/gparser/main/.DS_Store Binary files differnew file mode 100644 index 0000000..a8f3912 --- /dev/null +++ b/android/apks/gparser/main/.DS_Store diff --git a/android/apks/gparser/main/AndroidManifest.xml b/android/apks/gparser/main/AndroidManifest.xml new file mode 100644 index 0000000..1e72a1f --- /dev/null +++ b/android/apks/gparser/main/AndroidManifest.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="org.linaro.gparser" > + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name=".MainActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/android/apks/gparser/main/java/org/linaro/gparser/MainActivity.java b/android/apks/gparser/main/java/org/linaro/gparser/MainActivity.java new file mode 100644 index 0000000..ec82958 --- /dev/null +++ b/android/apks/gparser/main/java/org/linaro/gparser/MainActivity.java @@ -0,0 +1,71 @@ +package org.linaro.gparser; + +import android.app.Activity; +import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; + + +public class MainActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + ListView listView = (ListView) findViewById(R.id.listView1); + + List<TestResult> ResultList = null; + + try { + XMLPullParserHandler parser = new XMLPullParserHandler(); + + //Read TestResults.xml from /data/data/org.linaro.gparser/files/ + FileInputStream fis = openFileInput("TestResults.xml"); + ResultList = parser.parse(fis); + + // Save parsed result to /data/data/org.linaro.gparser/files/parsedTestResults.txt + FileOutputStream fos = openFileOutput("ParsedTestResults.txt", MODE_WORLD_READABLE); + for(int i = 0; i < ResultList.size(); i++) { + fos.write(ResultList.get(i).toString().getBytes()); + fos.write("\n".getBytes()); + } + fos.close(); + + ArrayAdapter<TestResult> adapter =new ArrayAdapter<TestResult> + (this,android.R.layout.simple_list_item_1, ResultList); + listView.setAdapter(adapter); + + } catch (IOException e) {e.printStackTrace();} + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } +} diff --git a/android/apks/gparser/main/java/org/linaro/gparser/TestResult.java b/android/apks/gparser/main/java/org/linaro/gparser/TestResult.java new file mode 100644 index 0000000..59dcb69 --- /dev/null +++ b/android/apks/gparser/main/java/org/linaro/gparser/TestResult.java @@ -0,0 +1,36 @@ +package org.linaro.gparser; + +/** + * Data object that holds all of information about test results. + * Created by Chase Qi(chase.qi@linaro.org) on 1/26/15. + */ +public class TestResult { + + private String testsuite = "empty"; + private String testcase = "empty"; + private String result = "pass"; + + public String getTestSuite() { + return testsuite; + } + public void setTestSuite(String testsuite) { + this.testsuite = testsuite; + } + public String getTestCase() { + return testcase; + } + public void setTestCase(String testcase) { + this.testcase = testcase; + } + public String getResult() { + return result; + } + public void setResult(String result) { + this.result = result; + } + + @Override + public String toString() { + return testsuite + "." + testcase + ":" + " " + result; + } +} diff --git a/android/apks/gparser/main/java/org/linaro/gparser/XMLPullParserHandler.java b/android/apks/gparser/main/java/org/linaro/gparser/XMLPullParserHandler.java new file mode 100644 index 0000000..d7feb8d --- /dev/null +++ b/android/apks/gparser/main/java/org/linaro/gparser/XMLPullParserHandler.java @@ -0,0 +1,75 @@ +package org.linaro.gparser; + +/** + * XMLPullParserHandler for XML parsing. + * Created by Chase Qi(chase.qi@linaro.org) on 1/26/15. + */ + +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +public class XMLPullParserHandler { + private List<TestResult> ResultList= new ArrayList<TestResult>(); + private TestResult testresult; + + public List<TestResult> getTestResults() { + return ResultList; + } + + public List<TestResult> parse(FileInputStream fis) { + try { + // get factory and PullParser + XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + + xpp.setInput(fis, null); + + int eventType = xpp.getEventType(); + while (eventType != XmlPullParser.END_DOCUMENT) { + // get the current tag + String tagname = xpp.getName(); + + // React to different event types appropriately + switch (eventType) { + case XmlPullParser.START_TAG: + if (tagname.equalsIgnoreCase("testcase")) { + // create a new instance of TestResult + testresult = new TestResult(); + // get the name attribute as testcase name + String testcase = xpp.getAttributeValue(0); + testresult.setTestCase(testcase); + // get the classname attribute as testsuite name + String testsuite = xpp.getAttributeValue(3); + testresult.setTestSuite(testsuite); + } + break; + + case XmlPullParser.END_TAG: + if (tagname.equalsIgnoreCase("testcase")) { + // if </testcase> then we are done with current test case + // add testresult object to list + ResultList.add(testresult); + }else if (tagname.equalsIgnoreCase("failure")) { + // if </failure> set result to fail + testresult.setResult("fail"); + } + break; + + default: + break; + } + // move on to next iteration + eventType = xpp.next(); + } + + } catch (XmlPullParserException | IOException e) {e.printStackTrace();} + + return ResultList; + } +}
\ No newline at end of file diff --git a/android/apks/gparser/main/res/drawable-hdpi/ic_launcher.png b/android/apks/gparser/main/res/drawable-hdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..96a442e --- /dev/null +++ b/android/apks/gparser/main/res/drawable-hdpi/ic_launcher.png diff --git a/android/apks/gparser/main/res/drawable-mdpi/ic_launcher.png b/android/apks/gparser/main/res/drawable-mdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..359047d --- /dev/null +++ b/android/apks/gparser/main/res/drawable-mdpi/ic_launcher.png diff --git a/android/apks/gparser/main/res/drawable-xhdpi/ic_launcher.png b/android/apks/gparser/main/res/drawable-xhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..71c6d76 --- /dev/null +++ b/android/apks/gparser/main/res/drawable-xhdpi/ic_launcher.png diff --git a/android/apks/gparser/main/res/drawable-xxhdpi/ic_launcher.png b/android/apks/gparser/main/res/drawable-xxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..4df1894 --- /dev/null +++ b/android/apks/gparser/main/res/drawable-xxhdpi/ic_launcher.png diff --git a/android/apks/gparser/main/res/layout/activity_main.xml b/android/apks/gparser/main/res/layout/activity_main.xml new file mode 100644 index 0000000..1537735 --- /dev/null +++ b/android/apks/gparser/main/res/layout/activity_main.xml @@ -0,0 +1,14 @@ +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" + android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" + android:paddingRight="@dimen/activity_horizontal_margin" + android:paddingTop="@dimen/activity_vertical_margin" + android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> + + <ListView + android:id="@+id/listView1" + android:layout_width="match_parent" + android:layout_height="wrap_content" > + </ListView> + +</RelativeLayout> diff --git a/android/apks/gparser/main/res/menu/menu_main.xml b/android/apks/gparser/main/res/menu/menu_main.xml new file mode 100644 index 0000000..87a750e --- /dev/null +++ b/android/apks/gparser/main/res/menu/menu_main.xml @@ -0,0 +1,5 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> + <item android:id="@+id/action_settings" android:title="@string/action_settings" + android:orderInCategory="100" android:showAsAction="never" /> +</menu> diff --git a/android/apks/gparser/main/res/values-v21/styles.xml b/android/apks/gparser/main/res/values-v21/styles.xml new file mode 100644 index 0000000..05fd012 --- /dev/null +++ b/android/apks/gparser/main/res/values-v21/styles.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + </style> +</resources>
\ No newline at end of file diff --git a/android/apks/gparser/main/res/values-w820dp/dimens.xml b/android/apks/gparser/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..63fc816 --- /dev/null +++ b/android/apks/gparser/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ +<resources> + <!-- Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> + <dimen name="activity_horizontal_margin">64dp</dimen> +</resources> diff --git a/android/apks/gparser/main/res/values/dimens.xml b/android/apks/gparser/main/res/values/dimens.xml new file mode 100644 index 0000000..47c8224 --- /dev/null +++ b/android/apks/gparser/main/res/values/dimens.xml @@ -0,0 +1,5 @@ +<resources> + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> +</resources> diff --git a/android/apks/gparser/main/res/values/strings.xml b/android/apks/gparser/main/res/values/strings.xml new file mode 100644 index 0000000..587e022 --- /dev/null +++ b/android/apks/gparser/main/res/values/strings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">gparser</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/android/apks/gparser/main/res/values/styles.xml b/android/apks/gparser/main/res/values/styles.xml new file mode 100644 index 0000000..ff6c9d2 --- /dev/null +++ b/android/apks/gparser/main/res/values/styles.xml @@ -0,0 +1,8 @@ +<resources> + + <!-- Base application theme. --> + <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- Customize your theme here. --> + </style> + +</resources> diff --git a/android/scripts/gtest.sh b/android/scripts/gtest.sh index 968a7d0..1edaa69 100755 --- a/android/scripts/gtest.sh +++ b/android/scripts/gtest.sh @@ -5,9 +5,11 @@ set -x TESTS=$1 # Install gparser.apk -pm install gparser.apk || echo "gparser.apk installation failed" + +pm install "/data/gparser.apk" || echo "gparser.apk installation failed" # mkdir /data/data/org.linaro.gparser/files ./gtest-death-test_test --gtest_output=xml:/data/data/org.linaro.gparser/files/TestResults.xml +chmod -R 777 /data/data/org.linaro.gparser/files/ am start -n org.linaro.gparser/.MainActivity cp /data/data/org.linaro.gparser/files/ParsedTestResults.txt am force-stop org.linaro.gparser |