diff --git a/ .github/workflows/codeql-analysis.yml b/ .github/workflows/codeql-analysis.yml deleted file mode 100644 index 75e465f..0000000 --- a/ .github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: "CodeQL" - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - schedule: - - cron: '36 15 * * 2' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'go' ] - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 diff --git a/ .github/workflows/go.yml b/ .github/workflows/go.yml deleted file mode 100644 index 94277cc..0000000 --- a/ .github/workflows/go.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Go -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: 1.18 - - name: Test - run: go test -v ./... \ No newline at end of file diff --git a/ .workflow/go.yml b/ .workflow/go.yml deleted file mode 100644 index 456a71a..0000000 --- a/ .workflow/go.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '1.0' -name: go -displayName: go -triggers: - trigger: auto - pr: - branches: - include: - - master -stages: - - name: compile - displayName: 编译 - strategy: naturally - trigger: auto - steps: - - step: build@golang - name: Test - displayName: Golang 测试 - golangVersion: '1.8' - commands: - - go env -w GO111MODULE=on - - go env -w GOPROXY=https://goproxy.cn,direct - - go test -v ./... - notify: [] -permissions: - - role: admin - members: [] diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 818c18b..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,40 +0,0 @@ -# Use the latest 2.1 version of CircleCI pipeline process engine. -# See: https://circleci.com/docs/2.0/configuration-reference -version: 2.1 -# Define a job to be invoked later in a workflow. -# See: https://circleci.com/docs/2.0/configuration-reference/#jobs -jobs: - build: - working_directory: ~/repo - # Specify the execution environment. You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub. - # See: https://circleci.com/docs/2.0/configuration-reference/#docker-machine-macos-windows-executor - docker: - - image: circleci/golang:1.18 - # Add steps to the job - # See: https://circleci.com/docs/2.0/configuration-reference/#steps - steps: - - checkout - - restore_cache: - keys: - - go-mod-v4-{{ checksum "go.sum" }} - - run: - name: Install Dependencies - command: go mod download - - save_cache: - key: go-mod-v4-{{ checksum "go.sum" }} - paths: - - "/go/pkg/mod" - - run: - name: Run tests - command: | - mkdir -p /tmp/test-reports - gotestsum --junitfile /tmp/test-reports/unit-tests.xml - - store_test_results: - path: /tmp/test-reports -# Invoke jobs via workflows -# See: https://circleci.com/docs/2.0/configuration-reference/#workflows -workflows: - sample: # This is the name of the workflow, feel free to change it to better match your workflow. - # Inside the workflow, you define the jobs you want to run. - jobs: - - build \ No newline at end of file diff --git a/.drone.yml b/.drone.yml index 41d1aeb..c56c479 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,4 +8,10 @@ steps: commands: - go env -w GO111MODULE=on - go env -w GOPROXY=https://goproxy.cn,direct - - go test -v ./... \ No newline at end of file + - go test -v ./... + - name: Benchmark + image: golang:1.18 + commands: + - go env -w GO111MODULE=on + - go env -w GOPROXY=https://goproxy.cn,direct + - go test -bench=. -benchmem \ No newline at end of file diff --git a/goip_test.go b/goip_test.go index 3ef3a44..47cb823 100644 --- a/goip_test.go +++ b/goip_test.go @@ -9,24 +9,56 @@ func lod() *Client { return NewIp() } -func TestIp(t *testing.T) { +func TestTo4(t *testing.T) { + t.Logf(string(net.ParseIP("61.241.55.180").To4())) +} + +func BenchmarkTo4(b *testing.B) { + for i := 0; i < b.N; i++ { + b.Logf(string(net.ParseIP("61.241.55.180").To4())) + } +} + +func TestTo16(t *testing.T) { + t.Logf(string(net.ParseIP("240e:3b4:38e4:3295:7093:af6c:e545:f2e9").To16())) +} + +func BenchmarkTo16(b *testing.B) { + for i := 0; i < b.N; i++ { + b.Logf(string(net.ParseIP("240e:3b4:38e4:3295:7093:af6c:e545:f2e9").To16())) + } +} + +func TestIpv4(t *testing.T) { client := lod() - t.Logf("%+v", net.ParseIP("61.241.55.180").To4()) - t.Logf("%+v", net.ParseIP("240e:3b4:38e4:3295:7093:af6c:e545:f2e9").To16()) - t.Logf("%+v", client.V4db.Find("61.241.55.180")) - t.Logf("%+v", client.V4db.Find("116.7.98.130")) - t.Logf("%+v", client.V6db.Find("240e:3b4:38e4:3295:7093:af6c:e545:f2e9")) - t.Log(client.V4Region.MemorySearch("61.241.55.180")) + t.Log(client.V4db.Find("116.7.98.130")) } func BenchmarkIpv4(b *testing.B) { client := lod() for i := 0; i < b.N; i++ { - b.Log(client.V4db.Find("61.241.55.180")) + b.Log(client.V4db.Find("116.7.98.130")) } } -func BenchmarkIpv5(b *testing.B) { +func TestV4Region(t *testing.T) { + client := lod() + t.Log(client.V4Region.MemorySearch("61.241.55.180")) +} + +func BenchmarkV4Region(b *testing.B) { + client := lod() + for i := 0; i < b.N; i++ { + b.Log(client.V4Region.MemorySearch("61.241.55.180")) + } +} + +func TestIpv6(t *testing.T) { + client := lod() + t.Log(client.V6db.Find("116.7.98.130")) +} + +func BenchmarkIpv6(b *testing.B) { client := lod() for i := 0; i < b.N; i++ { b.Log(client.V6db.Find("240e:3b4:38e4:3295:7093:af6c:e545:f2e9")) diff --git a/ip_test.go b/ip_test.go index b822618..e608ea5 100644 --- a/ip_test.go +++ b/ip_test.go @@ -2,9 +2,42 @@ package goip import "testing" -func TestIpIp(t *testing.T) { - t.Log("GetOutsideIp", GetOutsideIp()) - t.Log("GetInsideIp", GetInsideIp()) - t.Log("GetMacAddr", GetMacAddr()) +func TestGetOutsideIp(t *testing.T) { + t.Log(GetOutsideIp()) +} + +func BenchmarkGetOutsideIp(b *testing.B) { + for i := 0; i < b.N; i++ { + b.Log(GetOutsideIp()) + } +} + +func TestGetInsideIp(t *testing.T) { + t.Log(GetInsideIp()) +} + +func BenchmarkGetInsideIp(b *testing.B) { + for i := 0; i < b.N; i++ { + b.Log(GetInsideIp()) + } +} + +func TestGetMacAddr(t *testing.T) { + t.Log(GetMacAddr()) +} + +func BenchmarkGetMacAddr(b *testing.B) { + for i := 0; i < b.N; i++ { + b.Log(GetMacAddr()) + } +} + +func TestIps(t *testing.T) { t.Log(Ips()) } + +func BenchmarkIps(b *testing.B) { + for i := 0; i < b.N; i++ { + b.Log(Ips()) + } +}