Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration Tests Setup for MSSQL #57

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ test:

integration-test:
@echo "=== $(INTEGRATION) === [ test ]: running integration tests..."
@docker compose -f tests/docker-compose.yml pull
@go test -count=1 -v -tags=integration ./tests/. || (ret=$$?; docker compose -f tests/docker-compose.yml down && exit $$ret)
@docker compose -f tests/docker-compose.yml down
@docker compose -f tests/docker-compose.yml up -d
@sleep 120
@go test -v -tags=integration -count 1 ./tests/mssql_test.go -timeout 180s || (ret=$$?; docker compose -f tests/docker-compose.yml down -v && exit $$ret)
@docker compose -f tests/docker-compose.yml down -v

compile:
@echo "=== $(INTEGRATION) === [ compile ]: Building $(BINARY_NAME)..."
Expand Down
11 changes: 11 additions & 0 deletions tests/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Dockerfile to setup nri-mssql binary in a container

FROM golang:1.23.4-bookworm AS builder
ARG CGO_ENABLED=0
WORKDIR /go/src/github.com/newrelic/nri-mssql
COPY . .
RUN make clean compile

FROM alpine:latest
COPY --from=builder /go/src/github.com/newrelic/nri-mssql/bin /
CMD ["sleep", "1h"]
65 changes: 57 additions & 8 deletions tests/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,66 @@
services:

mssql:
mssql-perf-latest:
build:
context: ./perf-testing/latest_supported
dockerfile: Dockerfile
restart: always
container_name: "mssql-perf-latest"
environment:
ACCEPT_EULA: Y
SA_PASSWORD: secret123!
MSSQL_PID: Developer
ports:
- "1433:1433"
volumes:
- mssql-data:/var/opt/mssql/data:rw
- mssql-log:/var/opt/mssql/log:rw
- mssql-backup:/var/opt/mssql/backup:rw

# This is a known issue where latest versions of Ubuntu get a fatal error with MSSQL 2017
# https://github.com/actions/runner-images/issues/10649#issuecomment-2380651901
# When testing on x86 macs or debian linux mssql-perf-oldest can be enabled
# mssql-perf-oldest:
rahulreddy15 marked this conversation as resolved.
Show resolved Hide resolved
# build:
# context: ./perf-testing/oldest_supported
# dockerfile: Dockerfile
# restart: always
# container_name: "mssql-perf-oldest"
# environment:
# ACCEPT_EULA: Y
# SA_PASSWORD: secret123!
# MSSQL_PID: Developer
# ports:
# - "2433:1433"
# volumes:
# - mssql-oldest-data:/var/opt/mssql/data:rw
# - mssql-oldest-log:/var/opt/mssql/log:rw
# - mssql-oldest-backup:/var/opt/mssql/backup:rw

mssql-no-ext:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: mssql
restart: always
container_name: "mssql-noext"
environment:
ACCEPT_EULA: Y
SA_PASSWORD: secret123!
MSSQL_PID: Developer
restart: always
ports:
- "3433:1433"


nri-mssql:
image: golang:1.23.4-bookworm
container_name: nri_mssql
working_dir: /code
volumes:
- ../:/code
entrypoint: go run /code/src/mssql.go
build:
context: ../
dockerfile: ./tests/Dockerfile

volumes:
mssql-data:
mssql-log:
mssql-backup:

# Volumes for MSSQL Server 2017 can be enabled when testing on an OS that supports MSSQL 2017
# mssql-oldest-data:
# mssql-oldest-log:
# mssql-oldest-backup:
73 changes: 0 additions & 73 deletions tests/helper.go

This file was deleted.

Loading
Loading