Skip to content

Commit

Permalink
Merge pull request #826 from kyonRay/master
Browse files Browse the repository at this point in the history
Release 3.6.0
  • Loading branch information
kyonRay authored Feb 7, 2024
2 parents e87ad1f + b24e47e commit 38ee71b
Show file tree
Hide file tree
Showing 26 changed files with 863 additions and 78 deletions.
69 changes: 69 additions & 0 deletions .ci/check_rare_string.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/bin/bash

concatenatedString=$1

function LOG_ERROR()
{
local content=${1}
echo -e "\033[31m"${content}"\033[0m"
}

function LOG_INFO()
{
local content=${1}
echo -e "\033[32m"${content}"\033[0m"
}

get_md5sum_cmd() {
local md5sum_cmd="md5sum"
if [ "$(uname)" == "Darwin" ]; then
md5sum_cmd="md5"
fi
echo "$md5sum_cmd"
}

function checkConcatenatedRareString() {
local contract_address=${1}
md5sum_cmd=$(get_md5sum_cmd)

md5_concatenatedString=$(echo -n "$concatenatedString" | $md5sum_cmd | awk '{print $1}')

local set_output=$(./dist/console.sh call HelloWorld "${contract_address}" set "${concatenatedString}")
eventLogsFromSet=$(echo "set_output" | grep -o 'Event: {}' | sed 's/Event: {\(.*\)}/\1/')
if [ ! -z "$eventLogsFromSet" ]; then
echo "eventLogsFromSet=${eventLogsFromSet}"
md5_eventLogsFromSet=$(echo -n "$eventLogsFromSet" | $md5sum_cmd | awk '{print $1}')
if [ "$md5_concatenatedString" != "$md5_eventLogsFromSet" ]; then
LOG_ERROR "error: check failed, the md5 values of rareString and eventLogsFromSet are not equal, fail concatenatedString: ${concatenatedString}"
exit 1
fi
fi

# compare rare string and stringFromGet
get_output=$(./dist/console.sh call HelloWorld "${contract_address}" get)
stringFromGet=$(echo "$get_output" | grep "Return values" | sed 's/Return values:\(.*\)/\1/' | tr -d '()')
md5_stringFromGet=$(echo -n "$stringFromGet" | $md5sum_cmd | awk '{print $1}')
if [ "$md5_concatenatedString" != "$md5_stringFromGet" ]; then
LOG_ERROR "error: check failed, the md5 values of rareString and stringFromGet are not equal, fail concatenatedString: ${concatenatedString}"
exit 1
else
LOG_INFO "check success, concatenatedString: ${concatenatedString}"
fi
}

main() {
LOG_INFO "check rare string start, concatenatedString: ${concatenatedString}"

# deploy HelloWorld contract
console_output=$(./dist/console.sh deploy HelloWorld)
contract_address=$(echo "$console_output" | grep -oE 'contract address: 0x[0-9a-fA-F]+' | sed 's/contract address: //')
if [ -z "$contract_address" ]; then
LOG_ERROR "deploy HelloWorld contract failed, contract_address: ${contract_address}"
exit 1
fi

checkConcatenatedRareString $contract_address
LOG_INFO "check rare string finished!"
}

main "$@"
58 changes: 58 additions & 0 deletions .ci/ci_check.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
#!/bin/bash

set -e

rare_str_range_names=("CJKUnifiedIdeographs" "CJKCompatibilityIdeographs" "CJKCompatibilityIdeographsSupplement" "KangxiRadicals" "CJKRadicalsSupplement" "IdeographicDescriptionCharacters" "Bopomofo" "BopomofoExtended" "CJKStrokes" "CJKSymbolsandPunctuation" "CJKCompatibilityForms" "CJKCompatibility" "EnclosedCJKLettersandMonths" "CJKUnifiedIdeographsExtensionA" "CJKUnifiedIdeographsExtensionB" "CJKUnifiedIdeographsExtensionC" "CJKUnifiedIdeographsExtensionD" "CJKUnifiedIdeographsExtensionE" "CJKUnifiedIdeographsExtensionF")
rare_str_range_values=("19968,40959" "63744,64255" "194560,195103" "12032,12255" "11904,12031" "12272,12287" "12544,12591" "12704,12735" "12736,12783" "12288,12351" "65072,65103" "13056,13311" "12800,13055" "13312,19903" "131072,173791" "173824,177977" "177984,178205" "178208,183969" "183984,191456")

LOG_INFO() {
local content=${1}
echo -e "\033[32m ${content}\033[0m"
Expand Down Expand Up @@ -28,6 +32,11 @@ get_sed_cmd()
echo "$sed_cmd"
}

download_rare_string_jar() {
LOG_INFO "----- Downloading get-rare-string-with-unicode.jar -------"
curl -LO "https://github.com/FISCO-BCOS/LargeFiles/raw/master/binaries/jar/get-rare-string-with-unicode.jar"
}

download_build_chain()
{
local tag="${1}"
Expand Down Expand Up @@ -83,13 +92,60 @@ clean_node()
fi
}

getRangeValues() {
local rangeValue=$1
IFS=',' read -r startValue endValue <<<"$rangeValue"

echo "$startValue $endValue"
}

getConcatenatedRareStringWithRange() {
local startUnicode=${1}
local endUnicode=${2}

# concatenate strings with begin middle end
local concatenatedString=$(java -cp './get-rare-string-with-unicode.jar' org.example.Main ${startUnicode})
local midUnicode=$((($startUnicode + $endUnicode) / 2))
for ((i = midUnicode; i <= midUnicode + 5; i++)); do
local currentRareString=$(java -cp './get-rare-string-with-unicode.jar' org.example.Main ${i})
concatenatedString+="$currentRareString"
done
local endRareString=$(java -cp './get-rare-string-with-unicode.jar' org.example.Main ${endUnicode})
concatenatedString+="$endRareString"
echo "$concatenatedString"
}

check_rare_string() {
download_rare_string_jar
bash gradlew assemble
cp ./src/integration-test/resources/config.toml ./dist/conf/config.toml
cp -r ./nodes/127.0.0.1/sdk/* ./dist/conf/
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

finalConcatenatedInputString=""
for ((i = 0; i < ${#rare_str_range_names[@]}; i++)); do
rangeName="${rare_str_range_names[$i]}"
rangeValue="${rare_str_range_values[$i]}"

read -r startValue endValue <<<$(getRangeValues "$rangeValue")
concatenatedString=$(getConcatenatedRareStringWithRange $startValue $endValue)
finalConcatenatedInputString+="$concatenatedString"
done

bash -x .ci/check_rare_string.sh ${finalConcatenatedInputString}
}

check_standard_node()
{
build_node ${@:2}
prepare_environment
## run integration test
bash gradlew test --info
bash gradlew integrationTest --info
LOG_INFO "------ standard_node check_rare_string---------"
check_rare_string
clean_node "${1}"
}

Expand All @@ -100,6 +156,8 @@ check_sm_node()
## run integration test
bash gradlew test --info
bash gradlew integrationTest --info
LOG_INFO "------ standard_node check_rare_string---------"
check_rare_string
clean_node "${1}"
}

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '8.0.345'
java-version: '8.0.382'
- name: run build test
if: runner.os == 'Windows'
run: ./gradlew.bat build
Expand All @@ -51,12 +51,12 @@ jobs:
with:
fetch-depth: 5
- name: install CentOS dependencies
run: yum install -y epel-release centos-release-scl which git openssl-devel openssl wget
run: yum install -y epel-release centos-release-scl which git openssl-devel openssl wget
- name: Set up JDK 1.8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '8.0.345'
java-version: '8.0.382'
- name: run integration testing
run: /bin/bash -x .ci/ci_check.sh
- name: upload coverage
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ bin/**
/account
/build_chain.sh
/deploylog.txt
/bin/
44 changes: 23 additions & 21 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
plugins {
id 'com.github.sherter.google-java-format' version '0.8'
id 'java-library'
id 'java'
}
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'java'
apply plugin: 'eclipse'

Expand All @@ -13,7 +15,7 @@ targetCompatibility = 1.8

repositories {
mavenCentral()
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
maven { url "https://maven.aliyun.com/nexus/content/groups/public/" }
maven { url "https://oss.sonatype.org/service/local/staging/deploy/maven2" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
Expand All @@ -34,32 +36,32 @@ List logger = [

// In this section you declare the dependencies for your production and test code
dependencies {
compile logger
//compile 'org.fisco-bcos:solcJ:0.4.25.1'
//compile 'org.fisco-bcos:solcJ:0.6.10.1'
//compile 'org.fisco-bcos:solcJ:0.5.2.1'
compile 'org.fisco-bcos:solcJ:0.8.11.1'
implementation logger
//implementation 'org.fisco-bcos:solcJ:0.4.25.1'
//implementation 'org.fisco-bcos:solcJ:0.6.10.1'
//implementation 'org.fisco-bcos:solcJ:0.5.2.1'
implementation 'org.fisco-bcos:solcJ:0.8.11.1'

compile('org.fisco-bcos.java-sdk:fisco-bcos-java-sdk:3.5.0') {
implementation ('org.fisco-bcos.java-sdk:fisco-bcos-java-sdk:3.6.0-SNAPSHOT') {
exclude group: "org.slf4j"
}

compile('org.fisco-bcos:evm-static-analysis:1.0.0') {
exclude group: "org.slf4j"
implementation('org.fisco-bcos:evm-static-analysis:1.0.0') {
exclude group: "org.slf4j"
}
compile('commons-cli:commons-cli:1.5.0')
compile('org.jline:jline:3.21.0')
compile('io.bretty:console-table-builder:1.2')
compile('com.github.jsqlparser:jsqlparser:2.0')
compile('org.fisco-bcos.code-generator:bcos-code-generator:1.2.0') {
implementation('commons-cli:commons-cli:1.5.0')
implementation('org.jline:jline:3.21.0')
implementation('io.bretty:console-table-builder:1.2')
implementation('com.github.jsqlparser:jsqlparser:2.0')
implementation('org.fisco-bcos.code-generator:bcos-code-generator:1.3.0-SNAPSHOT') {
exclude group: "org.fisco-bcos.java-sdk"
exclude group: "org.slf4j"
}
compile ('com.fasterxml.jackson.core:jackson-databind:2.14.3'){
implementation ('com.fasterxml.jackson.core:jackson-databind:2.14.3'){
force true
}
testCompile('com.github.stefanbirkner:system-rules:1.19.0')
testCompile('junit:junit:4.13.2')
testImplementation('com.github.stefanbirkner:system-rules:1.19.0')
testImplementation('junit:junit:4.13.2')
}

configurations.all {
Expand Down Expand Up @@ -88,7 +90,7 @@ sourceSets {
}
}
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestCompile.extendsFrom testImplementation
integrationTestRuntime.extendsFrom testRuntime
}

Expand All @@ -99,15 +101,15 @@ task integrationTest(type: Test) {

jar {
destinationDir file('dist/apps')
archiveName project.name + '.jar'
archiveFileName=project.name + '.jar'
exclude '**/*.xml'
exclude '**/*.properties'
exclude '**/*.crt'
exclude '**/*.key'

doLast {
copy {
from configurations.runtime
from configurations.runtimeClasspath
into 'dist/lib'
}
copy {
Expand Down
2 changes: 1 addition & 1 deletion release_note.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v3.5.0
v3.6.0
4 changes: 2 additions & 2 deletions src/integration-test/java/console/ConsoleClientTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -184,10 +184,10 @@ public void clientWithParamsTest() throws Exception {
String[] txHashParams = {"", transactionHash};
// tx
consoleClientFace.getTransactionByHash(txHashParams);
Assert.assertTrue(log.getLog().contains("hash='" + transactionHash + "'"));
Assert.assertTrue(log.getLog().contains(transactionHash));
log.clearLog();
consoleClientFace.getTransactionByHashWithProof(txHashParams);
Assert.assertTrue(log.getLog().contains("hash='" + transactionHash + "'"));
Assert.assertTrue(log.getLog().contains(transactionHash));
log.clearLog();

// receipt
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/console/Console.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public static void main(String[] args) {
}
consoleInitializer.setLineReader(lineReader);
} catch (Exception e) {
e.printStackTrace();
System.out.println("Failed to initialize console, msg: " + e.getMessage());
logger.error(" message: {}", e.getMessage(), e);
System.exit(-1);
}
Expand Down
Loading

0 comments on commit 38ee71b

Please sign in to comment.