Commit e241fe01 authored by lichenchong's avatar lichenchong
Browse files

Kinetic-test:

1. Add conformance test cases.
2. Refactor test case for tesing compatible between drive and simulator.
parent abb24db6
Loading
Loading
Loading
Loading
+110 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

BASE_DIR=`dirname "$0"`/..
BASE_DIR=`cd "$BASE_DIR"; pwd`
#echo "BASE_DIR=$BASE_DIR"
HOST=127.0.0.1
PORT=8123
SSL_PORT=8443
HOME=`cd ~; pwd`

JAVA=""
if [ "$JAVA_HOME" != "" ]; then
   JAVA=$JAVA_HOME/bin/java
else
   echo "JAVA_HOME must be set."
   exit 1
fi

#Set the classpath

if [ "$CLASSPATH" != "" ]; then
   CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
else
CLASSPATH=$JAVA_HOME/lib/tools.jar
fi

for f in $BASE_DIR/kinetic-test/target/*.jar; do
   CLASSPATH=${CLASSPATH}:$f
done

#echo "CLASSPATH=$CLASSPATH" 


printUsage(){
   echo "Usage: sh runConformanceTests.sh [-option]"
   echo "       [-option]"
   echo "            -help                 usage"
   echo "            -host                 drive or simulator device ip address, default is 127.0.0.1"
   echo "            -port                 connection port, default is 8123"
   echo "            -tlsport              ssl connection port, defalt is 8443"
   echo "            -home                 drive or simulator home, default is user home path"
}


if [ $# -eq 0 ]; then
   exec "$JAVA" -classpath "$CLASSPATH" -Dkinetic.io.in=true -Dkinetic.io.out=true -DRUN_NIO_TEST=true -DRUN_SSL_TEST=true -DRUN_AGAINST_EXTERNAL=true -DKINETIC_HOST=$HOST com.seagate.kinetic.allTests.ConformanceTestRunner
   exit 0
fi


until [ $# -eq 0 ]
do
   case $1 in
   -help)
       printUsage;
       exit 0
       ;;
   -host)
      echo "Print host \"$2\""
      HOST=$2
      shift
      ;;
    -port)
      echo "Print port \"$2\""
      PORT=$2
      shift
      ;;
    -tlsport)
      echo "Print tls port \"$2\""
      SSL_PORT=$2
      shift
      ;;
    -home)
      echo "Print home \"$2\""
      HOME=$2
      shift
      ;;
    -usesocketlog)
      echo "Print usesocketlog \"$2\""
      USE_SOCKET_LOG=$2
      shift
      ;;
    -logserverip)
      echo "Print logserverip \"$2\""
      LOG_SERVER_IP=$2
      shift
      ;;
    -logserverport)
      echo "Print logserverport \"$2\""
      LOG_SERVER_PORT=$2
      shift
      ;;
    -logformatter)
      echo "Print logformatter \"$2\""
      LOG_FORMATTER=$2
      shift
      ;;
      
   *)
      echo "Invalid option : $1"
      printUsage;
      exit 1
      ;;
   esac
   shift
done

exec "$JAVA" -classpath "$CLASSPATH" -Dkinetic.io.in=true -Dkinetic.io.out=true -DRUN_NIO_TEST=true -DRUN_SSL_TEST=true -DRUN_AGAINST_EXTERNAL=true -DKINETIC_HOST=$HOST -DKINETIC_PORT=$PORT -DKINETIC_SSL_PORT=$SSL_PORT  -DKINETIC_HOME=$HOME com.seagate.kinetic.allTests.ConformanceTestRunner

exit 0
+4 −4
Original line number Diff line number Diff line
@@ -19,8 +19,7 @@
 */
package com.seagate.kinetic;

import java.nio.charset.Charset;

import static com.seagate.kinetic.KineticTestHelpers.toByteArray;
import kinetic.admin.AdminClientConfiguration;
import kinetic.admin.KineticAdminClient;
import kinetic.admin.KineticAdminClientFactory;
@@ -113,8 +112,9 @@ public abstract class AbstractIntegrationTestTarget {
	protected void performISE() throws KineticException {
		KineticAdminClient kineticAdminClient = KineticAdminClientFactory
				.createInstance(getAdminClientConfig());
		kineticAdminClient.instantErase("NULL".getBytes(Charset
				.forName("UTF-8")));
		byte[] newErasePin = toByteArray("123");
		kineticAdminClient.setErasePin(toByteArray(""), newErasePin);
		kineticAdminClient.instantErase(newErasePin);
		kineticAdminClient.close();
	}
}
+13 −10
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import static com.seagate.kinetic.KineticTestHelpers.toByteArray;
import static org.testng.AssertJUnit.assertEquals;

import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -43,7 +42,6 @@ import kinetic.client.p2p.KineticP2pClient;

import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;

import com.google.protobuf.ByteString;
@@ -111,15 +109,17 @@ public class IntegrationTestCase {
	@AfterClass(alwaysRun = true)
	public void stopTestServer() throws Exception {
		closeKineticClients();
		if (null != adminClient){
		    adminClient.close();
		}
		testTarget.shutdown();
	}

	@BeforeMethod(alwaysRun = true)
	protected void securityEraseTarget() throws KineticException {
		getAdminClient().secureErase(
				"NULL".getBytes(Charset.forName("UTF-8")));
	}
//	@BeforeMethod(alwaysRun = true)
//	protected void securityEraseTarget() throws KineticException {
//		getAdminClient().secureErase(
//				"NULL".getBytes(Charset.forName("UTF-8")));
//	}

	/**
	 * Get a Kinetic client.
@@ -323,7 +323,8 @@ public class IntegrationTestCase {
		}
		security.addAcl(acl);

		KineticMessage response = getClient(clientName).request(km);
//		KineticMessage response = getClient(clientName).request(km);
		KineticMessage response = getAdminClient().request(km);
		// Ensure setup succeeded, or else fail the calling test.
		assertEquals(Kinetic.Command.Status.StatusCode.SUCCESS, response
				.getCommand().getStatus().getCode());
@@ -405,7 +406,9 @@ public class IntegrationTestCase {
	private void closeKineticClients() throws KineticException {

		for (KineticP2pClient client : kineticClients.values()) {
		    if (null != client) {
		        client.close();
		    }
		}
	}
}
+23 −19
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import kinetic.admin.Role;
import kinetic.client.AsyncKineticException;
import kinetic.client.CallbackHandler;
import kinetic.client.CallbackResult;
import kinetic.client.KineticClient;
import kinetic.client.KineticException;

import org.testng.AssertJUnit;
@@ -111,27 +112,30 @@ public class KineticTestHelpers {
        };
    }
    
    /**
     * Reset pin, unless kinetic.test.disable-clean-pin system property is set
     * to 'true'
     *
     * @param pin
     *            new pin
     * @param client
     *            client to use
     * @throws KineticException
     *             if any kinetic internal error occurred.
     */
    public static void cleanPin(String pin, KineticAdminClient client)
    public static void instantErase(String oldErasePin, String newErasePin, KineticAdminClient client)
            throws KineticException {

        if (Boolean.getBoolean("kinetic.test.disable-clean-pin")) {
            return;
        byte[] oldErasePinB = toByteArray(oldErasePin);
        byte[] newErasePinB = toByteArray(newErasePin);
        client.setErasePin(oldErasePinB, newErasePinB);
        client.instantErase(newErasePinB);
    }
    
        byte[] oldErasePin = toByteArray(pin);
    public static void cleanData(int keyCount, KineticClient client)
            throws KineticException {
        for (int i = 0; i < keyCount; i++) {
            byte[] key = toByteArray("key" + i);
            client.deleteForced(key);
        }
    }
    
        client.setErasePin(oldErasePin, null);
    public static void cleanKVGenData(int keyCount, KineticClient client)
            throws KineticException {
        KVGenerator kvGen = new KVGenerator(); 
        for (int i = 0; i < keyCount; i++) {
            byte[] key = toByteArray(kvGen.getNextKey());
            client.deleteForced(key);
        }
    }

    /**
+163 −133

File changed.

Preview size limit exceeded, changes collapsed.

Loading