[Jrisk-cvs] SF.net SVN: jrisk-code:[1056] Grasshopper
Brought to you by:
yuranet
|
From: <yu...@us...> - 2024-12-27 15:58:36
|
Revision: 1056
http://sourceforge.net/p/jrisk/code/1056
Author: yuranet
Date: 2024-12-27 15:58:33 +0000 (Fri, 27 Dec 2024)
Log Message:
-----------
ios and android update
Modified Paths:
--------------
Grasshopper/ChangeLog.txt
Grasshopper/src_android/net/yura/grasshopper/BugUIInfo.java
Grasshopper/src_android/net/yura/grasshopper/ConsoleHandler.java
Grasshopper/src_ios/net/yura/grasshopper/BugUIInfo.java
Grasshopper/src_ios/net/yura/grasshopper/ConsoleHandler.java
Grasshopper/test/net/yura/grasshopper/LogTest.java
Grasshopper/test/net/yura/grasshopper/SimpleBugTest.java
Added Paths:
-----------
Grasshopper/test/net/yura/grasshopper/submitter/
Grasshopper/test/net/yura/grasshopper/submitter/BugSubmitterTest.java
Grasshopper/test/net/yura/grasshopper/util/
Grasshopper/test/net/yura/grasshopper/util/LimitedOutputStreamTest.java
Removed Paths:
-------------
Grasshopper/test/net/yura/grasshopper/BugSubmitterTest.java
Modified: Grasshopper/ChangeLog.txt
===================================================================
--- Grasshopper/ChangeLog.txt 2024-12-27 15:20:16 UTC (rev 1055)
+++ Grasshopper/ChangeLog.txt 2024-12-27 15:58:33 UTC (rev 1056)
@@ -1,4 +1,8 @@
+2.15
+
+ limit size of submission to allowed size
+
2.14
sound card info
Modified: Grasshopper/src_android/net/yura/grasshopper/BugUIInfo.java
===================================================================
--- Grasshopper/src_android/net/yura/grasshopper/BugUIInfo.java 2024-12-27 15:20:16 UTC (rev 1055)
+++ Grasshopper/src_android/net/yura/grasshopper/BugUIInfo.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -1,5 +1,7 @@
package net.yura.grasshopper;
+import net.yura.grasshopper.info.ScreenShot;
+import net.yura.grasshopper.submitter.BugSubmitter;
import java.io.ByteArrayOutputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
Modified: Grasshopper/src_android/net/yura/grasshopper/ConsoleHandler.java
===================================================================
--- Grasshopper/src_android/net/yura/grasshopper/ConsoleHandler.java 2024-12-27 15:20:16 UTC (rev 1055)
+++ Grasshopper/src_android/net/yura/grasshopper/ConsoleHandler.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -4,6 +4,7 @@
import java.util.logging.Level;
import java.util.logging.LogRecord;
import android.util.Log;
+import net.yura.grasshopper.util.ReallySimpleFormatter;
/**
* @author Yura Mamyrin
Modified: Grasshopper/src_ios/net/yura/grasshopper/BugUIInfo.java
===================================================================
--- Grasshopper/src_ios/net/yura/grasshopper/BugUIInfo.java 2024-12-27 15:20:16 UTC (rev 1055)
+++ Grasshopper/src_ios/net/yura/grasshopper/BugUIInfo.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -1,5 +1,7 @@
package net.yura.grasshopper;
+import net.yura.grasshopper.info.ScreenShot;
+import net.yura.grasshopper.submitter.BugSubmitter;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
import apple.coregraphics.opaque.CGContextRef;
Modified: Grasshopper/src_ios/net/yura/grasshopper/ConsoleHandler.java
===================================================================
--- Grasshopper/src_ios/net/yura/grasshopper/ConsoleHandler.java 2024-12-27 15:20:16 UTC (rev 1055)
+++ Grasshopper/src_ios/net/yura/grasshopper/ConsoleHandler.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -7,6 +7,7 @@
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
+import net.yura.grasshopper.util.ReallySimpleFormatter;
public class ConsoleHandler extends Handler {
Deleted: Grasshopper/test/net/yura/grasshopper/BugSubmitterTest.java
===================================================================
--- Grasshopper/test/net/yura/grasshopper/BugSubmitterTest.java 2024-12-27 15:20:16 UTC (rev 1055)
+++ Grasshopper/test/net/yura/grasshopper/BugSubmitterTest.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -1,151 +0,0 @@
-package net.yura.grasshopper;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-import java.util.logging.Logger;
-import junit.framework.TestCase;
-
-/**
- * @author Yura Mamyrin
- * @see BugSubmitter
- */
-public class BugSubmitterTest extends TestCase {
-
- private final Exception testException = new Exception("hello world");
-
- public BugSubmitterTest(String testName) {
- super(testName);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testSubmitBug() throws Exception {
-
- SimpleBug.initLogFile("testAppName", "testAppVersion", "");
-
- Logger logger = Logger.getGlobal();
- logger.info("hello");
- Thread.sleep(100);
- logger.warning("crap");
-
- Thread.sleep(3000);
- }
-
- /**
- * Test of submitBug method, of class BugSubmitter.
- */
- public void testSubmitBugFallBack() throws Exception {
-
- SimpleBug.initLogFile("testAppName", "testAppVersion", "");
-
- final List list = new ArrayList();
- list.add("one");
- list.add("two");
- list.add(LogTest.SOME_UNICODE);
-
- BugSubmitter.setApplicationInfoProvider(new ApplicationInfoProvider() {
- public void addInfoForSubmit(Map map) {
- map.put("testList", new LogList(list) );
- map.put("testString", "hello");
- map.put("testFallback", new LogText() {
- public long getContentLength() {
- throw new RuntimeException("terrible error test");
- }
- public void writeTo(OutputStream out) throws IOException {
- throw new RuntimeException("terrible error test");
- }
- int a;
- public String readLine() throws IOException {
- a++;
- switch (a) {
- case 1: return "a";
- case 2: return "b";
- case 3: return LogTest.SOME_UNICODE;
- default: return null;
- }
- }
- });
- }
-
- public boolean ignoreError(LogRecord record) {
- return false;
- }
- });
-
- Logger logger = Logger.getGlobal();
- logger.info("hello");
- Thread.sleep(100);
- logger.warning("crap");
-
- Thread.sleep(3000);
- }
-
- public void testIgnoreBug() throws Exception {
-
- SimpleBug.initLogFile("testAppName", "testAppVersion", "");
- final AtomicBoolean extraInfoCalled = new AtomicBoolean();
-
- BugSubmitter.setApplicationInfoProvider(new ApplicationInfoProvider() {
- public boolean ignoreError(LogRecord record) {
- if ("ignore me".equals(record.getMessage())) {
- return true;
- }
- if (record.getThrown() != null && "not again".equals(record.getThrown().getMessage())) {
- return true;
- }
- if ("java.lang.RuntimeException: whoopsy daisy".equals(record.getMessage())) {
- assertEquals(record.getSourceClassName(), "net.yura.grasshopper.BugSubmitterTest");
- assertEquals(record.getSourceMethodName(), "testIgnoreBug");
- return true;
- }
- if ("Caused by: java.lang.Exception: hello world".equals(record.getMessage())) {
- assertEquals(record.getSourceClassName(), "net.yura.grasshopper.BugSubmitterTest");
- assertEquals(record.getSourceMethodName(), "testIgnoreBug");
- return true;
- }
- return false;
- }
-
- public void addInfoForSubmit(Map map) {
- extraInfoCalled.set(true);
- }
- });
-
- Logger logger = Logger.getGlobal();
- logger.warning("ignore me");
-
- try {
- throw new RuntimeException("not again");
- }
- catch (Exception ex) {
- logger.log(Level.WARNING, "oh no", ex);
- }
-
- try {
- throw new RuntimeException("whoopsy daisy", testException);
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
-
- //System.err.println("\tat net.yura.grasshopper.BugSubmitterTest.testIgnoreBug(BugSubmitterTest.java:129)");
- //System.out.println("\tat net.yura.grasshopper.BugSubmitterTest.testIgnoreBug(BugSubmitterTest.java:129)");
- //System.err.println("\tat net.yura.grasshopper.BugSubmitterTest.testIgnoreBug(BugSubmitterTest.java:129)");
-
- Thread.sleep(3000); // wait for big submit trigger to run
-
- assertFalse(extraInfoCalled.get());
- }
-}
Modified: Grasshopper/test/net/yura/grasshopper/LogTest.java
===================================================================
--- Grasshopper/test/net/yura/grasshopper/LogTest.java 2024-12-27 15:20:16 UTC (rev 1055)
+++ Grasshopper/test/net/yura/grasshopper/LogTest.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -5,7 +5,6 @@
import junit.framework.TestCase;
/**
- *
* @author Yura Mamyrin
*/
public class LogTest extends TestCase {
Modified: Grasshopper/test/net/yura/grasshopper/SimpleBugTest.java
===================================================================
--- Grasshopper/test/net/yura/grasshopper/SimpleBugTest.java 2024-12-27 15:20:16 UTC (rev 1055)
+++ Grasshopper/test/net/yura/grasshopper/SimpleBugTest.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -63,10 +63,11 @@
// failed 149921 - 5000068 bytes
// failed 149950 - 5001134 bytes
// failed 150000 - 5002754 bytes
- for (int c=0;c<149900;c++) {
+ for (int c = 0; c < 150000; c++) {
logger.info("testing some logging " + c);
}
+ // trigger a submission
LogTest.testLogger();
System.out.println("testBigLogFile - done");
Copied: Grasshopper/test/net/yura/grasshopper/submitter/BugSubmitterTest.java (from rev 1055, Grasshopper/test/net/yura/grasshopper/BugSubmitterTest.java)
===================================================================
--- Grasshopper/test/net/yura/grasshopper/submitter/BugSubmitterTest.java (rev 0)
+++ Grasshopper/test/net/yura/grasshopper/submitter/BugSubmitterTest.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -0,0 +1,156 @@
+package net.yura.grasshopper.submitter;
+
+import net.yura.grasshopper.info.LogList;
+import net.yura.grasshopper.info.LogText;
+import net.yura.grasshopper.info.ApplicationInfoProvider;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+import junit.framework.TestCase;
+import net.yura.grasshopper.LogTest;
+import net.yura.grasshopper.SimpleBug;
+
+/**
+ * @author Yura Mamyrin
+ * @see BugSubmitter
+ */
+public class BugSubmitterTest extends TestCase {
+
+ private final Exception testException = new Exception("hello world");
+
+ public BugSubmitterTest(String testName) {
+ super(testName);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testSubmitBug() throws Exception {
+
+ SimpleBug.initLogFile("testAppName", "testAppVersion", "");
+
+ Logger logger = Logger.getGlobal();
+ logger.info("hello");
+ Thread.sleep(100);
+ logger.warning("crap");
+
+ Thread.sleep(3000);
+ }
+
+ /**
+ * Test of submitBug method, of class BugSubmitter.
+ */
+ public void testSubmitBugFallBack() throws Exception {
+
+ SimpleBug.initLogFile("testAppName", "testAppVersion", "");
+
+ final List list = new ArrayList();
+ list.add("one");
+ list.add("two");
+ list.add(LogTest.SOME_UNICODE);
+
+ BugSubmitter.setApplicationInfoProvider(new ApplicationInfoProvider() {
+ public void addInfoForSubmit(Map map) {
+ map.put("testList", new LogList(list) );
+ map.put("testString", "hello");
+ map.put("testFallback", new LogText() {
+ public long getContentLength() {
+ throw new RuntimeException("terrible error test");
+ }
+ public void writeTo(OutputStream out) throws IOException {
+ throw new RuntimeException("terrible error test");
+ }
+ int a;
+ public String readLine() throws IOException {
+ a++;
+ switch (a) {
+ case 1: return "a";
+ case 2: return "b";
+ case 3: return LogTest.SOME_UNICODE;
+ default: return null;
+ }
+ }
+ });
+ }
+
+ public boolean ignoreError(LogRecord record) {
+ return false;
+ }
+ });
+
+ Logger logger = Logger.getGlobal();
+ logger.info("hello");
+ Thread.sleep(100);
+ logger.warning("crap");
+
+ Thread.sleep(3000);
+ }
+
+ public void testIgnoreBug() throws Exception {
+
+ SimpleBug.initLogFile("testAppName", "testAppVersion", "");
+ final AtomicBoolean extraInfoCalled = new AtomicBoolean();
+
+ BugSubmitter.setApplicationInfoProvider(new ApplicationInfoProvider() {
+ public boolean ignoreError(LogRecord record) {
+ if ("ignore me".equals(record.getMessage())) {
+ return true;
+ }
+ if (record.getThrown() != null && "not again".equals(record.getThrown().getMessage())) {
+ return true;
+ }
+ if ("java.lang.RuntimeException: whoopsy daisy".equals(record.getMessage())) {
+ assertEquals(record.getSourceClassName(), "net.yura.grasshopper.BugSubmitterTest");
+ assertEquals(record.getSourceMethodName(), "testIgnoreBug");
+ return true;
+ }
+ if ("Caused by: java.lang.Exception: hello world".equals(record.getMessage())) {
+ assertEquals(record.getSourceClassName(), "net.yura.grasshopper.BugSubmitterTest");
+ assertEquals(record.getSourceMethodName(), "testIgnoreBug");
+ return true;
+ }
+ return false;
+ }
+
+ public void addInfoForSubmit(Map map) {
+ extraInfoCalled.set(true);
+ }
+ });
+
+ Logger logger = Logger.getGlobal();
+ logger.warning("ignore me");
+
+ try {
+ throw new RuntimeException("not again");
+ }
+ catch (Exception ex) {
+ logger.log(Level.WARNING, "oh no", ex);
+ }
+
+ try {
+ throw new RuntimeException("whoopsy daisy", testException);
+ }
+ catch (Exception ex) {
+ ex.printStackTrace();
+ }
+
+ //System.err.println("\tat net.yura.grasshopper.BugSubmitterTest.testIgnoreBug(BugSubmitterTest.java:129)");
+ //System.out.println("\tat net.yura.grasshopper.BugSubmitterTest.testIgnoreBug(BugSubmitterTest.java:129)");
+ //System.err.println("\tat net.yura.grasshopper.BugSubmitterTest.testIgnoreBug(BugSubmitterTest.java:129)");
+
+ Thread.sleep(3000); // wait for big submit trigger to run
+
+ assertFalse(extraInfoCalled.get());
+ }
+}
Added: Grasshopper/test/net/yura/grasshopper/util/LimitedOutputStreamTest.java
===================================================================
--- Grasshopper/test/net/yura/grasshopper/util/LimitedOutputStreamTest.java (rev 0)
+++ Grasshopper/test/net/yura/grasshopper/util/LimitedOutputStreamTest.java 2024-12-27 15:58:33 UTC (rev 1056)
@@ -0,0 +1,45 @@
+package net.yura.grasshopper.util;
+
+import java.io.ByteArrayOutputStream;
+import junit.framework.TestCase;
+
+public class LimitedOutputStreamTest extends TestCase {
+
+ public static void testLimit() throws Exception {
+
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+
+ LimitedOutputStream lout = new LimitedOutputStream(bout, 5);
+
+ lout.write('a');
+ lout.write(new byte[] {'b','c'});
+ lout.write(new byte[] {'a','b','c','d','e','f','g','h'}, 3, 3);
+
+ lout.write('a');
+ lout.write(new byte[] {'b','c'});
+ lout.write(new byte[] {'a','b','c','d','e','f','g','h'}, 3, 3);
+
+ lout.close();
+
+ assertEquals("abcde", new String(bout.toByteArray()));
+ }
+
+ public static void testLimit2() throws Exception {
+
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+
+ LimitedOutputStream lout = new LimitedOutputStream(bout, 5);
+
+ lout.write('a');
+ lout.write(new byte[] {'a','b','c','d','e','f','g','h'}, 1, 2);
+ lout.write(new byte[] {'d','e','f','g'});
+
+ lout.write('a');
+ lout.write(new byte[] {'a','b','c','d','e','f','g','h'}, 1, 2);
+ lout.write(new byte[] {'d','e','f','g'});
+
+ lout.close();
+
+ assertEquals("abcde", new String(bout.toByteArray()));
+ }
+}
|