From 8a3e58d5e0a103c7f90ccac5f7e478aa0287b8ec Mon Sep 17 00:00:00 2001 From: aressu1985 <47846308+aressu1985@users.noreply.github.com> Date: Mon, 29 Aug 2022 21:07:19 +0800 Subject: [PATCH] Fix bug result error and modify ci (#99) * fix bug when result file is not well-format * fix bug that mo will npe or outofbound when result file is invalid * fix bug for result error * add tempate.sql * modify ci * add template result * modify ci * modify template.sql * modify ci check mo status command --- .github/workflows/ci.yml | 6 +- lib/mo-tester-1.0-SNAPSHOT.jar | Bin 55004 -> 55258 bytes src/main/java/io/mo/db/Executor.java | 60 +++++++-- src/main/java/io/mo/result/RSSet.java | 8 +- src/main/java/io/mo/result/StmtResult.java | 36 +++++- src/main/java/io/mo/util/ResultParser.java | 137 +++++++++++++-------- src/main/java/io/mo/util/ScriptParser.java | 1 + 7 files changed, 175 insertions(+), 73 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 692d72e4e..7534306d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,7 +65,7 @@ jobs: - name: Build MatrixOne run: | - cd $GITHUB_WORKSPACE/head && make clean && make config && make build + cd $GITHUB_WORKSPACE/head && make clean && make build git rev-parse --short HEAD echo "base sha: ${{ github.event.pull_request.base.sha }}" echo "head sha: ${{ github.event.pull_request.head.sha }}" @@ -73,7 +73,7 @@ jobs: - name: Start MO run: | cd $GITHUB_WORKSPACE/head - ./mo-server ./system_vars_config.toml &>mo-server.log & + ./mo-service -cfg ./etc/cn-standalone-test.toml &>mo-service.log & - name: Clone test-tool repository uses: actions/checkout@v2 @@ -101,7 +101,7 @@ jobs: - name: Check MO-Server Status if: ${{ always() }} run: | - if [ "$(ps -ef | grep 'mo-server' | grep -v "grep" | wc -l)" -gt 0 ]; then pkill -9 mo-server; else echo 'current mo-server has already crashed'; exit 1; fi + if [ "$(ps -ef | grep 'mo-service' | grep -v "grep" | wc -l)" -gt 0 ]; then pkill -9 mo-service; else echo 'current mo-service has already crashed'; exit 1; fi - name: remove some files if: ${{ always() }} diff --git a/lib/mo-tester-1.0-SNAPSHOT.jar b/lib/mo-tester-1.0-SNAPSHOT.jar index 4990c0b7663ea8b295fa274deb842d618d270db4..362f8c799929d0d5fdfdd79ebef2cb37b753ccc0 100644 GIT binary patch delta 19622 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 delta 19330 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