Merge branch 'dev-cheney' into dev-1.0
# Conflicts: # pom.xml # src/main/java/com/sunyard/sge/database/SydApi4Database.java # src/main/java/com/sunyard/sge/database/SydApiBuilder.java # src/main/java/com/sunyard/sge/database/pool/SydApiPool.java # src/main/java/com/sunyard/sge/pool/ThreadBasedConnectPool.java # src/test/java/test/FuncTest.java # sydapi-database.iml
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package sample;
|
||||
|
||||
import com.sunyard.SydApi;
|
||||
import racal.sunyard.main.SydApi4j;
|
||||
import racal.sunyard.main.SydApiBuilder;
|
||||
|
||||
public class ConnectThread extends Thread {
|
||||
|
||||
public SydApi getApi() {
|
||||
SydApiBuilder builder = new SydApiBuilder().setIp("172.16.18.59");
|
||||
SydApi4j papi = (SydApi4j) builder.build();
|
||||
// SydApi4j papi = (SydApi4j) new SydApi4j().connect("172.16.18.59" , 8889, null,1000);
|
||||
return papi;
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
|
||||
// logger.info("测试开始");
|
||||
int n = Runtime.getRuntime().availableProcessors();
|
||||
int max = 1001;
|
||||
Thread[] tList = new Thread[max];
|
||||
for (int i = 0; i < max; i++) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println(Thread.currentThread().getName() + "已运行");
|
||||
ConnectThread stable = new ConnectThread();
|
||||
SydApi api = stable.getApi();
|
||||
try {
|
||||
// SydApi api = stable.getApi();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
tList[i] = thread;
|
||||
}
|
||||
for (Thread t : tList) {
|
||||
t.start();
|
||||
}
|
||||
for (Thread t : tList) {
|
||||
try {
|
||||
t.join();
|
||||
} catch (InterruptedException e3) {
|
||||
e3.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,10 +10,13 @@ public class ShortLinkSample {
|
||||
// 路径要以 / 或 \\ 结尾表示目录
|
||||
|
||||
String[] pcipList = {"127.0.0.1", "192.168.0.200" };
|
||||
int[] iportList ={8080,8889};
|
||||
int[] iportList = {8080,8889};
|
||||
SydApi api = new SydApi4Database();
|
||||
try {
|
||||
api.SYD_Short_Connect_Ex(pcipList,iportList,10,10);
|
||||
|
||||
|
||||
|
||||
} finally {
|
||||
if ( null != api ) {
|
||||
api.SYD_Disconnect_Ex();
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
package test;
|
||||
|
||||
import com.sunyard.proto.Util;
|
||||
import com.sunyard.sge.database.Consts;
|
||||
import com.sunyard.sge.database.SydApi;
|
||||
import com.sunyard.sge.database.SydApiBuilder;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class BatchDataTest {
|
||||
|
||||
private SydApi api;
|
||||
private static class RandomTestData {
|
||||
private int size;
|
||||
private int[] keyIdx;
|
||||
private List<byte[]> data;
|
||||
|
||||
public int[] getKeyIdx() {
|
||||
return keyIdx;
|
||||
}
|
||||
|
||||
public List<byte[]> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public RandomTestData(int lucky) {
|
||||
this.size = lucky;
|
||||
this.keyIdx = new int[lucky];
|
||||
this.data = new ArrayList<>();
|
||||
for ( int i = 0 ; i < lucky; i++ ) {
|
||||
byte[] data = new byte[ new Random().nextInt(1024) ];
|
||||
new Random().nextBytes( data );
|
||||
this.data.add( data );
|
||||
}
|
||||
}
|
||||
public RandomTestData() {
|
||||
int lucky = new Random().nextInt(100);
|
||||
this.size = lucky;
|
||||
this.keyIdx = new int[lucky];
|
||||
this.data = new ArrayList<>();
|
||||
for ( int i = 0 ; i < lucky; i++ ) {
|
||||
byte[] data = new byte[ new Random().nextInt(1024) ];
|
||||
new Random().nextBytes( data );
|
||||
this.data.add( data );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||
|
||||
SydApiBuilder builder = new SydApiBuilder(
|
||||
new String[]{"192.168.1.129"},
|
||||
new int[]{8889},
|
||||
10,
|
||||
15
|
||||
|
||||
);
|
||||
api = builder.build();
|
||||
}
|
||||
|
||||
@After
|
||||
public void end() {
|
||||
if (null != api) {
|
||||
api.SYD_Disconnect_Ex();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchSM4Case1() {
|
||||
// 密钥索引
|
||||
int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
|
||||
// 测试数据
|
||||
List<byte[]> data = new ArrayList<>();
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData(keyIdx, data, Consts.ECB_ENC);
|
||||
List<byte[]> orgData = api.SYD_SM4_BatchData(keyIdx, encData, Consts.ECB_DEC);
|
||||
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
|
||||
Assert.assertArrayEquals(orgData.get(i), data.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchSM4Case2() {
|
||||
// 测试数据
|
||||
RandomTestData data = new RandomTestData();
|
||||
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData(data.getKeyIdx(), data.getData(), Consts.ECB_ENC);
|
||||
List<byte[]> orgData = api.SYD_SM4_BatchData(data.getKeyIdx(), encData, Consts.ECB_DEC);
|
||||
|
||||
for (int i = 0; i < data.getSize(); i++) {
|
||||
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
|
||||
Assert.assertArrayEquals(orgData.get(i), data.getData().get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchSM4CaseZero() {
|
||||
// 测试数据
|
||||
RandomTestData data = new RandomTestData(0);
|
||||
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData(data.getKeyIdx(), data.getData(), Consts.ECB_ENC);
|
||||
List<byte[]> orgData = api.SYD_SM4_BatchData(data.getKeyIdx(), encData, Consts.ECB_DEC);
|
||||
|
||||
for (int i = 0; i < data.getSize(); i++) {
|
||||
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
|
||||
Assert.assertArrayEquals(orgData.get(i), data.getData().get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchMACDataCase1() {
|
||||
// 密钥索引
|
||||
int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
|
||||
// 测试数据
|
||||
List<byte[]> data = new ArrayList<>();
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
data.add(new byte[8]);
|
||||
data.add(new byte[16]);
|
||||
data.add(new byte[1024]);
|
||||
|
||||
String[] macs = api.SYD_SM4Mac_BatchData(keyIdx, data);
|
||||
boolean[] checks = api.SYD_SM4Mac_BatchData(keyIdx, data, macs);
|
||||
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
System.out.println("MAC[" + i + "]=" + macs[i]);
|
||||
Assert.assertTrue(checks[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchMACData() {
|
||||
// 测试数据
|
||||
RandomTestData data = new RandomTestData();
|
||||
|
||||
String[] macs = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData());
|
||||
boolean[] checks = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData(), macs);
|
||||
|
||||
for (int i = 0; i < data.getSize(); i++) {
|
||||
System.out.println("MAC[" + i + "]=" + macs[i]);
|
||||
Assert.assertTrue(checks[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void batchMACDataZero() {
|
||||
// 测试数据
|
||||
RandomTestData data = new RandomTestData(0);
|
||||
|
||||
String[] macs = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData());
|
||||
boolean[] checks = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData(), macs);
|
||||
|
||||
for (int i = 0; i < data.getSize(); i++) {
|
||||
System.out.println("MAC[" + i + "]=" + macs[i]);
|
||||
Assert.assertTrue(checks[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ public class FuncTest {
|
||||
|
||||
@Test
|
||||
public void syd_Short_Connect_Ex(){
|
||||
String[] pcipList = {"127.0.0.1", "192.168.0.100" };
|
||||
int[] iportList ={8080,8889};
|
||||
String[] pcipList = {"192.168.1.129", "192.168.1.129" };
|
||||
int[] iportList ={8889,8889};
|
||||
SydApi api = new SydApi4Database();
|
||||
try {
|
||||
api.SYD_Short_Connect_Ex(pcipList,iportList,10,10);
|
||||
@@ -49,8 +49,9 @@ public class FuncTest {
|
||||
|
||||
@Test
|
||||
public void originLong() throws Exception {
|
||||
SydApiBuilder builder = new SydApiBuilder(new String[]{"192.168.0.200"}, new int[]{8889}, 10, 15);
|
||||
SydApiBuilder builder = new SydApiBuilder(new String[]{"192.168.1.129"}, new int[]{8889}, 10, 15);
|
||||
SydApi.SYD_SetLogConfig("./logs/",3);
|
||||
|
||||
final SydApi api = builder.build();
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
int tmp = i;
|
||||
@@ -66,8 +67,9 @@ public class FuncTest {
|
||||
@Test
|
||||
public void originShort() throws Exception {
|
||||
SydApi.SYD_SetLogConfig("./logs/",3);
|
||||
String[] pcipList = {"192.168.0.100", "192.168.0.100", "192.168.0.100","192.168.0.100" };
|
||||
int[] iportList ={8080,8889,8889,8889};
|
||||
Logger log = LogFactory.getLogger();
|
||||
String[] pcipList = {"192.168.1.129", "192.168.1.129" };
|
||||
int[] iportList ={8080,8889};
|
||||
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
int tmp = i;
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
package test;
|
||||
|
||||
import com.sunyard.sge.pool.CommWorker;
|
||||
import com.sunyard.sge.pool.PoolConfig;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.concurrent.*;
|
||||
|
||||
public class FutureTaskTest {
|
||||
|
||||
/**
|
||||
* 并发任务
|
||||
*/
|
||||
@Test
|
||||
public void case1() throws ExecutionException, InterruptedException, TimeoutException {
|
||||
PoolConfig poolConfig = new PoolConfig();
|
||||
CommWorker workers = new CommWorker(poolConfig);
|
||||
|
||||
long startAt = System.currentTimeMillis();
|
||||
try {
|
||||
FutureTask<Integer> task1 = workers.fTask(new Callable<Integer>() {
|
||||
|
||||
@Override
|
||||
public Integer call() throws Exception {
|
||||
System.out.println( Thread.currentThread() + " task start");
|
||||
Thread.sleep( 1000 );
|
||||
System.out.println( Thread.currentThread() + " task over");
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
FutureTask<Integer> task2 = workers.fTask(new Callable<Integer>() {
|
||||
|
||||
@Override
|
||||
public Integer call() throws Exception {
|
||||
System.out.println( Thread.currentThread() + " task start");
|
||||
Thread.sleep( 2000 );
|
||||
System.out.println( Thread.currentThread() + " task over");
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
FutureTask<Integer> task3 = workers.fTask(new Callable<Integer>() {
|
||||
|
||||
@Override
|
||||
public Integer call() throws Exception {
|
||||
System.out.println( Thread.currentThread() + " task start");
|
||||
Thread.sleep( 3000 );
|
||||
System.out.println( Thread.currentThread() + " task over");
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
task1.get( );
|
||||
task2.get( );
|
||||
task3.get( );
|
||||
}finally {
|
||||
|
||||
long endAt = System.currentTimeMillis();
|
||||
|
||||
System.out.println("耗时 " + ( endAt - startAt ) );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,10 +19,10 @@ public class LongDataTest {
|
||||
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||
|
||||
SydApiBuilder builder = new SydApiBuilder(
|
||||
new String[]{"192.168.1.128"},
|
||||
new String[]{"192.168.1.129"},
|
||||
new int[]{8889},
|
||||
10,
|
||||
15
|
||||
30
|
||||
|
||||
);
|
||||
api = builder.build();
|
||||
@@ -30,7 +30,7 @@ public class LongDataTest {
|
||||
|
||||
@Test
|
||||
public void sm3_case1() {
|
||||
SydApiSM3 sm3 = api.initSM3();
|
||||
ISM3 sm3 = api.initSM3();
|
||||
sm3.update(null);
|
||||
String mac = sm3.digest();
|
||||
Assert.assertEquals("1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B", mac);
|
||||
@@ -38,7 +38,7 @@ public class LongDataTest {
|
||||
|
||||
@Test
|
||||
public void sm3_case2() {
|
||||
SydApiSM3 sm3 = api.initSM3();
|
||||
ISM3 sm3 = api.initSM3();
|
||||
sm3.update(Util.hexString2Bytes("1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"));
|
||||
String mac = sm3.digest();
|
||||
Assert.assertEquals("9431C865C84B02C8A7C503F53A6D6C3C66704F8F713D124610314E31B19937F7", mac);
|
||||
@@ -46,7 +46,7 @@ public class LongDataTest {
|
||||
|
||||
@Test
|
||||
public void sm3_case3() {
|
||||
SydApiSM3 sm3 = api.initSM3();
|
||||
ISM3 sm3 = api.initSM3();
|
||||
sm3.update(Util.hexString2Bytes("1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"));
|
||||
sm3.update(Util.hexString2Bytes("1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"));
|
||||
String mac = sm3.digest();
|
||||
@@ -55,7 +55,7 @@ public class LongDataTest {
|
||||
|
||||
@Test
|
||||
public void sm3_case4() {
|
||||
SydApiSM3 sm3 = api.initSM3();
|
||||
ISM3 sm3 = api.initSM3();
|
||||
System.out.print("org=");
|
||||
for (int i = 0; i < 100; i++) {
|
||||
int lucky = new Random().nextInt(4065);
|
||||
@@ -73,49 +73,44 @@ public class LongDataTest {
|
||||
|
||||
@Test
|
||||
public void sm3_case5() {
|
||||
SydApiSM3 sm3 = api.initSM3();
|
||||
ISM3 sm3 = api.initSM3();
|
||||
String mac = sm3.digest();
|
||||
Assert.assertEquals("1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B", mac);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sm4mac_case1() {
|
||||
SydSM4Mac sydApiMac = api.initSM4Mac(1);
|
||||
ISM4Mac sydApiMac = api.initSM4Mac(1);
|
||||
sydApiMac.update(null);
|
||||
String mac = (String) sydApiMac.disget().getData();
|
||||
String mac = sydApiMac.disget();
|
||||
Assert.assertEquals("FF49F76AD3A71651FE1A8A9F0D2A689E", mac);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sm4mac_case2() {
|
||||
SydSM4Mac sydApiMac = api.initSM4Mac(1);
|
||||
String mac = (String) sydApiMac.disget().getData();
|
||||
ISM4Mac sydApiMac = api.initSM4Mac(1);
|
||||
String mac = sydApiMac.disget();
|
||||
Assert.assertEquals("FF49F76AD3A71651FE1A8A9F0D2A689E", mac);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sm4mac_case3() {
|
||||
SydSM4Mac sydApiMac = api.initSM4Mac(1);
|
||||
ISM4Mac sydApiMac = api.initSM4Mac(1);
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
// int lucky = new Random().nextInt(4065);
|
||||
byte[] data = new byte[66];
|
||||
// System.out.println("len=" + lucky);
|
||||
// new Random().nextBytes( data );
|
||||
// sydApiMac.setPcMac("405C2DCF4884240B7F2E4FF56B00639A");
|
||||
sydApiMac.setPcMac("72A7EFF0004CE7D2A1B7C2260726EC38");
|
||||
sydApiMac.update(data);
|
||||
}
|
||||
|
||||
boolean mac = (boolean) sydApiMac.disget().getData();
|
||||
// String mac1 = (String) sydApiMac.disget().getData();
|
||||
String mac = (String) sydApiMac.disget();
|
||||
System.out.println(mac);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void case5() {
|
||||
SydApiSM4 sydApiSM4 = api.initSM4(1, 1);
|
||||
ISM4 sydApiSM4 = api.initSM4(1, 1);
|
||||
byte[] enData = sydApiSM4.finish();
|
||||
System.out.println(Util.bytes2HexString(enData));
|
||||
Assert.assertArrayEquals(Util.hexString2Bytes("FF49F76AD3A71651FE1A8A9F0D2A689E"), enData);
|
||||
@@ -123,7 +118,7 @@ public class LongDataTest {
|
||||
|
||||
@Test
|
||||
public void case6() {
|
||||
SydApiSM4 sydApiSM4 = api.initSM4(1, 1);
|
||||
ISM4 sydApiSM4 = api.initSM4(1, 1);
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int lucky = new Random().nextInt(4065);
|
||||
@@ -144,8 +139,8 @@ public class LongDataTest {
|
||||
|
||||
int max = 1000;
|
||||
int size = 4065;
|
||||
SydApiSM4 en = api.initSM4(1, 1);
|
||||
SydApiSM4 de = api.initSM4(1, 0);
|
||||
ISM4 en = api.initSM4(1, 1);
|
||||
ISM4 de = api.initSM4(1, 0);
|
||||
|
||||
ByteBuffer inData = ByteBuffer.allocate(max * size);
|
||||
ByteBuffer enData = ByteBuffer.allocate(max * size + 16);
|
||||
|
||||
@@ -92,13 +92,12 @@ package test;
|
||||
//}
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Test {
|
||||
public static void main(String[] args) {
|
||||
if (16 > 1799 + 16
|
||||
||
|
||||
(1799 + 16)/16<2
|
||||
) {
|
||||
System.out.println("1");
|
||||
}
|
||||
List<Integer> keyGroups = new ArrayList<>();
|
||||
keyGroups.toArray( new Integer[0] );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user