add version test
add list e2e test add list e2e add clear, build e2e add profile e2e fix clear e2e case update add install e2e add register e2e case add init e2e case add diff e2e case update update update add cover e2e case update
This commit is contained in:
parent
fee726b165
commit
c08f0e45eb
10
Makefile
10
Makefile
@ -10,4 +10,12 @@ fmt:
|
||||
go fmt ./...
|
||||
|
||||
govet-check:
|
||||
go vet ./...
|
||||
go vet ./...
|
||||
|
||||
clean:
|
||||
find tests/ -type f -name '*.bak' -delete
|
||||
find tests/ -type f -name '*.cov' -delete
|
||||
find tests/ -type f -name 'simple-project' -delete
|
||||
find tests/ -type f -name '*_profile_listen_addr' -delete
|
||||
find tests/ -type f -name 'simple_gopath_project' -delete
|
||||
|
@ -25,11 +25,12 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
target string
|
||||
center string
|
||||
agentPort AgentPort
|
||||
debugGoc bool
|
||||
buildFlags string
|
||||
target string
|
||||
center string
|
||||
agentPort AgentPort
|
||||
debugGoc bool
|
||||
debugInCISyncFile string
|
||||
buildFlags string
|
||||
|
||||
goRunExecFlag string
|
||||
goRunArguments string
|
||||
|
@ -18,9 +18,10 @@ package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/qiniu/goc/pkg/cover"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@ -37,6 +38,7 @@ goc list [flags]
|
||||
if err != nil {
|
||||
log.Fatalf("list failed, err: %v", err)
|
||||
}
|
||||
log.Infoln(string(res))
|
||||
fmt.Fprint(os.Stdout, string(res))
|
||||
},
|
||||
}
|
||||
|
15
cmd/root.go
15
cmd/root.go
@ -17,9 +17,11 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
@ -58,10 +60,23 @@ Find more information at:
|
||||
})
|
||||
}
|
||||
},
|
||||
PersistentPostRun: func(cmd *cobra.Command, args []string) {
|
||||
if debugInCISyncFile != "" {
|
||||
f, err := os.Create(debugInCISyncFile)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.PersistentFlags().BoolVar(&debugGoc, "debug", false, "run goc in debug mode")
|
||||
rootCmd.PersistentFlags().StringVar(&debugInCISyncFile, "debugcisyncfile", "", "internal use only, no explain")
|
||||
rootCmd.PersistentFlags().MarkHidden("debugcisyncfile")
|
||||
viper.BindPFlags(rootCmd.PersistentFlags())
|
||||
}
|
||||
|
||||
|
46
tests/build.bats
Executable file
46
tests/build.bats
Executable file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
}
|
||||
|
||||
@test "test basic goc build command" {
|
||||
cd samples/run_for_several_seconds
|
||||
wait_profile_backend "build"
|
||||
run gocc build --debug --debugcisyncfile ci-sync.bak;
|
||||
info build output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
}
|
||||
|
||||
@test "test goc build command without debug" {
|
||||
cd samples/run_for_several_seconds
|
||||
wait_profile_backend "build"
|
||||
run gocc build --debugcisyncfile ci-sync.bak;
|
||||
info build output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
}
|
62
tests/clear.bats
Executable file
62
tests/clear.bats
Executable file
@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
# run covered goc
|
||||
gocc server --port=:60001 --debug 3>&- &
|
||||
GOCC_PID=$!
|
||||
sleep 1
|
||||
|
||||
WORKDIR=$PWD
|
||||
cd samples/run_for_several_seconds
|
||||
gocc build --center=http://127.0.0.1:60001
|
||||
./simple-project 3>&- &
|
||||
SAMPLE_PID=$!
|
||||
sleep 2
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
kill -9 $GOCC_PID
|
||||
kill -9 $SAMPLE_PID
|
||||
}
|
||||
|
||||
@test "test basic goc clear command" {
|
||||
wait_profile_backend "clear1"
|
||||
|
||||
run gocc clear --debug --debugcisyncfile ci-sync.bak;
|
||||
info clear1 output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"coverage counter clear call successfully"* ]]
|
||||
}
|
||||
|
||||
@test "test clear another center" {
|
||||
wait_profile_backend "clear2"
|
||||
|
||||
run gocc clear --center=http://127.0.0.1:60001 --debug --debugcisyncfile ci-sync.bak;
|
||||
info clear2 output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"coverage counter clear call successfully"* ]]
|
||||
}
|
49
tests/cover.bats
Executable file
49
tests/cover.bats
Executable file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
mkdir -p test-temp
|
||||
cp samples/simple_project/main.go test-temp
|
||||
cp samples/simple_project/go.mod test-temp
|
||||
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
cp test-temp/filtered* .
|
||||
rm -rf test-temp
|
||||
kill -9 $GOC_PID
|
||||
}
|
||||
|
||||
@test "test basic goc cover command" {
|
||||
cd test-temp
|
||||
wait_profile_backend "cover1"
|
||||
run gocc cover --debug --debugcisyncfile ci-sync.bak;
|
||||
info cover1 output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
|
||||
run ls http_cover_apis_auto_generated.go
|
||||
info ls output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"http_cover_apis_auto_generated.go"* ]]
|
||||
}
|
69
tests/diff.bats
Executable file
69
tests/diff.bats
Executable file
@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
}
|
||||
|
||||
@test "test basic goc diff command" {
|
||||
cd samples/diff_samples
|
||||
|
||||
wait_profile_backend "diff1"
|
||||
|
||||
|
||||
run gocc diff --new-profile=./new.voc --base-profile=./base.voc --debug --debugcisyncfile ci-sync.bak;
|
||||
info list output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"qiniu.com/kodo/apiserver/server/main.go | 50.0% | 100.0% | 50.0%"* ]]
|
||||
[[ "$output" == *"Total | 50.0% | 100.0% | 50.0%"* ]]
|
||||
}
|
||||
|
||||
@test "test diff in prow environment with periodic job" {
|
||||
cd samples/diff_samples
|
||||
|
||||
wait_profile_backend "diff2"
|
||||
|
||||
export JOB_TYPE=periodic
|
||||
|
||||
run gocc diff --new-profile=./new.voc --prow-postsubmit-job=base --debug --debugcisyncfile ci-sync.bak;
|
||||
info diff1 output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"do nothing"* ]]
|
||||
}
|
||||
|
||||
@test "test diff in prow environment with postsubmit job" {
|
||||
cd samples/diff_samples
|
||||
|
||||
wait_profile_backend "diff3"
|
||||
|
||||
export JOB_TYPE=postsubmit
|
||||
|
||||
run gocc diff --new-profile=./new.voc --prow-postsubmit-job=base --debug --debugcisyncfile ci-sync.bak;
|
||||
info diff2 output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"do nothing"* ]]
|
||||
}
|
@ -13,6 +13,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
@ -27,13 +29,13 @@ setup_file() {
|
||||
gocc run --debug . 3>&- &
|
||||
GOCC_PID=$!
|
||||
sleep 2
|
||||
echo "goc gocc server started"
|
||||
info "goc gocc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
cd $WORKDIR
|
||||
# collect from center
|
||||
goc profile --debug -o filtered2.cov
|
||||
goc profile --debug -o filtered-run.cov
|
||||
kill -9 $GOC_PID
|
||||
kill -9 $GOCC_PID
|
||||
}
|
||||
|
52
tests/init.bats
Executable file
52
tests/init.bats
Executable file
@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
# run covered goc
|
||||
gocc server --port=:60001 --debug 3>&- &
|
||||
GOCC_PID=$!
|
||||
sleep 1
|
||||
|
||||
WORKDIR=$PWD
|
||||
cd samples/run_for_several_seconds
|
||||
gocc build --center=http://127.0.0.1:60001
|
||||
./simple-project 3>&- &
|
||||
SAMPLE_PID=$!
|
||||
sleep 2
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
kill -9 $GOCC_PID
|
||||
kill -9 $SAMPLE_PID
|
||||
}
|
||||
|
||||
@test "test init command" {
|
||||
wait_profile_backend "init1"
|
||||
|
||||
run gocc init --center=http://127.0.0.1:60001 --debug --debugcisyncfile ci-sync.bak;
|
||||
info init output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
}
|
41
tests/install.bats
Executable file
41
tests/install.bats
Executable file
@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
}
|
||||
|
||||
@test "test basic goc install command" {
|
||||
info $PWD
|
||||
export GOPATH=$PWD/samples/simple_gopath_project
|
||||
export GO111MODULE=off
|
||||
cd samples/simple_gopath_project/src/qiniu.com/simple_gopath_project
|
||||
wait_profile_backend "install"
|
||||
run gocc install --debug --debugcisyncfile ci-sync.bak;
|
||||
info install output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
}
|
46
tests/list.bats
Executable file
46
tests/list.bats
Executable file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
# run covered goc
|
||||
gocc server --port=:60001 --debug 3>&- &
|
||||
GOCC_PID=$!
|
||||
sleep 1
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
kill -9 $GOCC_PID
|
||||
}
|
||||
|
||||
@test "test basic goc list command" {
|
||||
wait_profile_backend "list"
|
||||
|
||||
run gocc list --debug --debugcisyncfile ci-sync.bak;
|
||||
info list output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"gocc"* ]]
|
||||
[[ "$output" == *"http"* ]]
|
||||
}
|
53
tests/profile.bats
Executable file
53
tests/profile.bats
Executable file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
# run covered goc
|
||||
gocc server --port=:60001 --debug 3>&- &
|
||||
GOCC_PID=$!
|
||||
sleep 1
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
kill -9 $GOCC_PID
|
||||
}
|
||||
|
||||
@test "test goc profile to stdout" {
|
||||
wait_profile_backend "profile1"
|
||||
|
||||
run gocc profile --debug --debugcisyncfile ci-sync.bak;
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"mode: count"* ]]
|
||||
}
|
||||
|
||||
@test "test goc profile to file" {
|
||||
wait_profile_backend "profile2"
|
||||
|
||||
run gocc profile -o test-profile.bak --debug --debugcisyncfile ci-sync.bak;
|
||||
[ "$status" -eq 0 ]
|
||||
run cat test-profile.bak
|
||||
[[ "$output" == *"mode: count"* ]]
|
||||
}
|
54
tests/register.bats
Executable file
54
tests/register.bats
Executable file
@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
# run covered goc
|
||||
gocc server --port=:60001 --debug 3>&- &
|
||||
GOCC_PID=$!
|
||||
sleep 1
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
kill -9 $GOCC_PID
|
||||
}
|
||||
|
||||
@test "test basic goc register command" {
|
||||
wait_profile_backend "register1"
|
||||
|
||||
run gocc register --center=http://127.0.0.1:60001 --name=xyz --address=http://137.0.0.1:666 --debug --debugcisyncfile ci-sync.bak;
|
||||
info register output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"success"* ]]
|
||||
}
|
||||
|
||||
@test "test goc register without port" {
|
||||
wait_profile_backend "register2"
|
||||
|
||||
run gocc register --center=http://127.0.0.1:60001 --name=xyz --address=http://137.0.0.1 --debug --debugcisyncfile ci-sync.bak;
|
||||
info register output: $output
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"missing port"* ]]
|
||||
}
|
@ -17,8 +17,28 @@ set -ex
|
||||
|
||||
echo "test start"
|
||||
|
||||
bats server.bats
|
||||
bats -t server.bats
|
||||
|
||||
bats gocrun.bats
|
||||
bats -t gocrun.bats
|
||||
|
||||
bats -t version.bats
|
||||
|
||||
bats -t list.bats
|
||||
|
||||
bats -t clear.bats
|
||||
|
||||
bats -t build.bats
|
||||
|
||||
bats -t profile.bats
|
||||
|
||||
bats -t install.bats
|
||||
|
||||
bats -t register.bats
|
||||
|
||||
bats -t init.bats
|
||||
|
||||
bats -t diff.bats
|
||||
|
||||
bats -t cover.bats
|
||||
|
||||
bash <(curl -s https://codecov.io/bash) -f 'filtered*' -F e2e
|
20
tests/run-in-local.sh
Executable file
20
tests/run-in-local.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set -ex
|
||||
|
||||
echo "test start"
|
||||
|
||||
bats -t profile.bats
|
3
tests/samples/diff_samples/base.voc
Normal file
3
tests/samples/diff_samples/base.voc
Normal file
@ -0,0 +1,3 @@
|
||||
mode: atomic
|
||||
qiniu.com/kodo/apiserver/server/main.go:32.49,33.13 1 30
|
||||
qiniu.com/kodo/apiserver/server/main.go:42.49,43.13 1 0
|
3
tests/samples/diff_samples/new.voc
Normal file
3
tests/samples/diff_samples/new.voc
Normal file
@ -0,0 +1,3 @@
|
||||
mode: atomic
|
||||
qiniu.com/kodo/apiserver/server/main.go:32.49,33.13 1 30
|
||||
qiniu.com/kodo/apiserver/server/main.go:42.49,43.13 1 1
|
@ -13,6 +13,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
@ -23,12 +25,12 @@ setup_file() {
|
||||
gocc server --port=:60001 --debug 3>&- &
|
||||
GOCC_PID=$!
|
||||
sleep 2
|
||||
echo "goc gocc server started"
|
||||
info "goc gocc server started"
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
# collect from center
|
||||
goc profile --debug -o filtered.cov
|
||||
goc profile --debug -o filtered-server.cov
|
||||
kill -9 $GOC_PID
|
||||
kill -9 $GOCC_PID
|
||||
}
|
||||
|
39
tests/util.sh
Normal file
39
tests/util.sh
Normal file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
info() {
|
||||
echo -e "[$(date +'%Y-%m-%dT%H:%M:%S.%N%z')] INFO: $@" >&3
|
||||
}
|
||||
|
||||
wait_profile() {
|
||||
local n=0
|
||||
local timeout=10
|
||||
until [[ ${n} -ge ${timeout} ]]
|
||||
do
|
||||
# check whether the target port is listened by specific process
|
||||
if [[ -f ci-sync.bak ]]; then
|
||||
break
|
||||
fi
|
||||
n=$[${n}+1]
|
||||
sleep 1
|
||||
done
|
||||
# collect from center
|
||||
goc profile -o filtered-$1.cov
|
||||
}
|
||||
|
||||
wait_profile_backend() {
|
||||
rm ci-sync.bak || true
|
||||
coproc { wait_profile $1; }
|
||||
}
|
42
tests/version.bats
Executable file
42
tests/version.bats
Executable file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bats
|
||||
# Copyright 2020 Qiniu Cloud (七牛云)
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load util.sh
|
||||
|
||||
setup_file() {
|
||||
# run centered server
|
||||
goc server 3>&- &
|
||||
GOC_PID=$!
|
||||
sleep 2
|
||||
goc init
|
||||
|
||||
info "goc server started"
|
||||
}
|
||||
|
||||
setup() {
|
||||
goc init
|
||||
rm ci-sync.bak || true
|
||||
}
|
||||
|
||||
teardown_file() {
|
||||
kill -9 $GOC_PID
|
||||
}
|
||||
|
||||
@test "test basic goc version command" {
|
||||
wait_profile_backend "version"
|
||||
|
||||
run gocc version --debug --debugcisyncfile ci-sync.bak;
|
||||
[ "$output" = "(devel)" ]
|
||||
}
|
Loading…
Reference in New Issue
Block a user