diff --git a/.github/workflows/qodana-analysis.yaml b/.github/workflows/qodana-analysis.yaml
new file mode 100644
index 000000000..95ecc6bee
--- /dev/null
+++ b/.github/workflows/qodana-analysis.yaml
@@ -0,0 +1,60 @@
+name: Test
+
+on: [push, pull_request]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ unit_tests:
+ strategy:
+ matrix:
+ go-version: [1.21.x]
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ include:
+ - go-version: 1.19.x
+ os: ubuntu-latest
+ - go-version: 1.20.x
+ os: ubuntu-latest
+ runs-on: ${{ matrix.os }}
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Install Go
+ uses: actions/setup-go@v4
+ with:
+ go-version: ${{ matrix.go-version }}
+
+ - name: Make all
+ run: make all
+
+ - name: Make Test
+ run: make test
+ test_coverage:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Install Go
+ uses: actions/setup-go@v4
+ with:
+ go-version: 1.21.x
+
+ - name: Make all
+ run: make all
+
+ - name: Setup
+ run: mkdir -p .qodana/code-coverage
+
+ - name: Make Coverage
+ run: make test-coverage
+
+ - name: 'Qodana Scan'
+ uses: JetBrains/qodana-action@v2023.3
+ env:
+ QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
+ with:
+ pr-mode: true
diff --git a/.idea/ktfmt.xml b/.idea/ktfmt.xml
new file mode 100644
index 000000000..f0d6dab42
--- /dev/null
+++ b/.idea/ktfmt.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 000000000..a0733a5cd
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/project.iml b/.idea/project.iml
new file mode 100644
index 000000000..5e764c4f0
--- /dev/null
+++ b/.idea/project.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/thor.iml b/.idea/thor.iml
new file mode 100644
index 000000000..7ee078df7
--- /dev/null
+++ b/.idea/thor.iml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 000000000..35eb1ddfb
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml
new file mode 100644
index 000000000..bec81f90b
--- /dev/null
+++ b/.idea/watcherTasks.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 000000000..8e271238b
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Makefile b/Makefile
index e6384556f..de9429529 100644
--- a/Makefile
+++ b/Makefile
@@ -42,8 +42,10 @@ all: thor disco
clean:
-rm -rf \
$(CURDIR)/bin/thor \
-$(CURDIR)/bin/disco
+$(CURDIR)/bin/disco
test:| go_version_check
@go test -cover $(PACKAGES)
+test-coverage:| go_version_check
+ @go test -race -coverprofile=.qodana/code-coverage/coverage.out -covermode=atomic $(PACKAGES)