You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2014/08/11 12:36:34 UTC
svn commit: r1617240 - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting:
functionTests/tests/lang/DBOAccessTest.java junit/BaseTestCase.java
unitTests/junit/MissingPermissionsTest2.policy
Author: kahatlen
Date: Mon Aug 11 10:36:34 2014
New Revision: 1617240
URL: http://svn.apache.org/r1617240
Log:
DERBY-6697: Failures when running tests with JaCoCo
Add permissions needed by JaCoCo to MissingPermissionTest's custom
policy file.
Make BaseTestCase.execJavaCmd() propagate the empty jacoco.active
property to sub-processes if the tests are running with JaCoCo.
Adjust dummy arguments given to procedures in DBOAccessTest so that
they fail with an error that is not affected by the broader
permissions granted when running with JaCoCo.
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/DBOAccessTest.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseTestCase.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest2.policy
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/DBOAccessTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/DBOAccessTest.java?rev=1617240&r1=1617239&r2=1617240&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/DBOAccessTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/DBOAccessTest.java Mon Aug 11 10:36:34 2014
@@ -21,7 +21,6 @@
package org.apache.derbyTesting.functionTests.tests.lang;
-import java.security.AccessControlException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
@@ -59,6 +58,7 @@ public class DBOAccessTest extends Gener
private static final String MISSING_TABLE = "42X05";
private static final String NO_SUCH_TABLE = "XIE0M";
private static final String UNKNOWN_USER = "XK001";
+ private static final String SQLJ_INVALID_JAR = "46001";
private static final String SYSCS_SET_DATABASE_PROPERTY = "SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY";
private static final String SYSCS_GET_DATABASE_PROPERTY = "SYSCS_UTIL.SYSCS_GET_DATABASE_PROPERTY";
@@ -379,7 +379,10 @@ public class DBOAccessTest extends Gener
}
catch (SQLException se)
{
- if ( shouldSucceed ) { fail( routineName + " should have succeeded: " + se.getSQLState() + " " + se.getMessage() ); }
+ if ( shouldSucceed )
+ {
+ fail( routineName + " should have succeeded", se );
+ }
else
{
assertSQLState( LACK_EXECUTE_PRIV, se );
@@ -424,6 +427,7 @@ public class DBOAccessTest extends Gener
{
try {
SystemProcedures.SYSCS_BACKUP_DATABASE( null );
+ fail();
}
catch (SQLException se) { vetError( NULL_BACKUP_DIRECTORY, se ); }
}
@@ -431,6 +435,7 @@ public class DBOAccessTest extends Gener
{
try {
SystemProcedures.SYSCS_BACKUP_DATABASE_NOWAIT( null );
+ fail();
}
catch (SQLException se) { vetError( NULL_BACKUP_DIRECTORY, se ); }
}
@@ -438,6 +443,7 @@ public class DBOAccessTest extends Gener
{
try {
SystemProcedures.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE( null, (short) 0 );
+ fail();
}
catch (SQLException se) { vetError( NULL_BACKUP_DIRECTORY, se ); }
}
@@ -445,6 +451,7 @@ public class DBOAccessTest extends Gener
{
try {
SystemProcedures.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE_NOWAIT( null, (short) 0 );
+ fail();
}
catch (SQLException se) { vetError( NULL_BACKUP_DIRECTORY, se ); }
}
@@ -459,35 +466,50 @@ public class DBOAccessTest extends Gener
else if (INSTALL_JAR.equals( routineName ) )
{
try {
- SystemProcedures.INSTALL_JAR( "foo", "bar", 1 );
+ SystemProcedures.INSTALL_JAR( SupportFilesSetup.getReadOnlyFileName("foo"), "bar", 1 );
+ fail();
+ }
+ catch (SQLException se) {
+ vetError(SQLJ_INVALID_JAR, se);
}
- catch (AccessControlException se) { println( "Caught expected AccessControlException" ); }
}
else if (REPLACE_JAR.equals( routineName ) )
{
try {
- SystemProcedures.REPLACE_JAR( "foo", "bar" );
+ SystemProcedures.REPLACE_JAR( SupportFilesSetup.getReadOnlyFileName("foo"), "bar" );
+ fail();
+ }
+ catch (SQLException se) {
+ vetError(SQLJ_INVALID_JAR, se);
}
- catch (AccessControlException se) { println( "Caught expected AccessControlException" ); }
}
else if (REMOVE_JAR.equals( routineName ) )
{
try {
SystemProcedures.REMOVE_JAR( "test_dbo.foo", 0 );
+ fail();
}
catch (SQLException se) { vetError( MISSING_OBJECT, se ); }
}
else if ( SYSCS_EXPORT_TABLE.equals( routineName ) )
{
try {
- SystemProcedures.SYSCS_EXPORT_TABLE( "TEST_DBO", "BAR", "WIBBLE", null, null, null );
+ SystemProcedures.SYSCS_EXPORT_TABLE(
+ "TEST_DBO", "BAR",
+ SupportFilesSetup.getReadWriteFileName("WIBBLE"),
+ null, null, null);
+ fail();
}
- catch (SQLException se) { vetError( JAVA_EXCEPTION, se ); }
+ catch (SQLException se) { vetError( MISSING_TABLE, se ); }
}
else if ( SYSCS_IMPORT_TABLE.equals( routineName ) )
{
try {
- SystemProcedures.SYSCS_IMPORT_TABLE( "TEST_DBO", "BAR", "WIBBLE", null, null, null, (short) 1 );
+ SystemProcedures.SYSCS_IMPORT_TABLE(
+ "TEST_DBO", "BAR",
+ SupportFilesSetup.getReadWriteFileName("WIBBLE"),
+ null, null, null, (short) 1);
+ fail();
}
catch (SQLException se) { vetError( NO_SUCH_TABLE, se ); }
}
@@ -495,6 +517,7 @@ public class DBOAccessTest extends Gener
{
try {
SystemProcedures.SYSCS_IMPORT_TABLE_LOBS_FROM_EXTFILE( "TEST_DBO", "BAR", "WIBBLE", null, null, null, (short) 1 );
+ fail();
}
catch (SQLException se) { vetError( NO_SUCH_TABLE, se ); }
}
@@ -503,6 +526,7 @@ public class DBOAccessTest extends Gener
try {
SystemProcedures.SYSCS_IMPORT_DATA
( "TEST_DBO", "BAR", null, "1,3,4", "WIBBLE", null, null, null, (short) 1 );
+ fail();
}
catch (SQLException se) { vetError( NO_SUCH_TABLE, se ); }
}
@@ -511,6 +535,7 @@ public class DBOAccessTest extends Gener
try {
SystemProcedures.SYSCS_IMPORT_DATA_LOBS_FROM_EXTFILE
( "TEST_DBO", "BAR", null, "1,3,4", "WIBBLE", null, null, null, (short) 1 );
+ fail();
}
catch (SQLException se) { vetError( NO_SUCH_TABLE, se ); }
}
@@ -519,6 +544,7 @@ public class DBOAccessTest extends Gener
try {
SystemProcedures.SYSCS_BULK_INSERT
( "TEST_DBO", "BAR", "WIBBLE", "wombat" );
+ fail();
}
catch (SQLException se) { vetError( SYNTAX_ERROR, se ); }
}
@@ -562,6 +588,7 @@ public class DBOAccessTest extends Gener
{
try {
SystemProcedures.SYSCS_CREATE_USER( "foo", "bar" );
+ fail();
}
catch (SQLException se) { vetError( FIRST_CREDENTIALS, se ); }
}
@@ -569,6 +596,7 @@ public class DBOAccessTest extends Gener
{
try {
SystemProcedures.SYSCS_RESET_PASSWORD( "foo", "bar" );
+ fail();
}
catch (SQLException se) { vetError( UNKNOWN_USER, se ); }
}
@@ -576,6 +604,7 @@ public class DBOAccessTest extends Gener
{
try {
SystemProcedures.SYSCS_DROP_USER( "foo" );
+ fail();
}
catch (SQLException se) { vetError( UNKNOWN_USER, se ); }
}
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseTestCase.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseTestCase.java?rev=1617240&r1=1617239&r2=1617240&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseTestCase.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/BaseTestCase.java Mon Aug 11 10:36:34 2014
@@ -691,6 +691,7 @@ public abstract class BaseTestCase
String agent = getSystemProperty(JACOCO_AGENT_PROP);
cmdlist.add(agent + (agent.endsWith("=") ? "": ",") +
"destfile=" + getJaCoCoOutFile());
+ cmdlist.add("-Djacoco.active=");
}
if (isSunJVM() && Boolean.valueOf(
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest2.policy
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest2.policy?rev=1617240&r1=1617239&r2=1617240&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest2.policy (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest2.policy Mon Aug 11 10:36:34 2014
@@ -158,3 +158,9 @@ grant codeBase "${derbyTesting.antjunit}
// This permission is needed when running the tests using ant 1.7
permission java.io.FilePermission "${user.dir}${/}*", "write";
};
+
+// Grant the required permissions for JaCoCo (code coverage tool).
+grant {
+ permission java.io.FilePermission "${jacoco.active}${user.dir}${/}*", "read, write";
+ permission java.lang.RuntimePermission "${jacoco.active}shutdownHooks";
+};