diff --git a/.gitignore b/.gitignore index 9b4a0e92f3..79dcee8fa3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,6 @@ .run venv -go.sum -go.mod .DS_Store .sqlhistory benchmark/perf_tools/dolt-builds/dolt diff --git a/integration-tests/MySQLDockerfile b/integration-tests/MySQLDockerfile index 66d22ea98d..215643ab33 100644 --- a/integration-tests/MySQLDockerfile +++ b/integration-tests/MySQLDockerfile @@ -1,72 +1,78 @@ FROM ubuntu:18.04 -ENV DEBIAN_FRONTEND=noninteractive -RUN apt update -y -RUN apt install -y software-properties-common - # install python, libmysqlclient-dev, java, bats, git ruby, perl, cpan -RUN add-apt-repository ppa:deadsnakes/ppa -y -RUN apt update -y -RUN apt install -y \ - python3.8 \ - python3-pip \ - curl \ - wget \ - pkg-config \ - mysql-client \ - libmysqlclient-dev \ - openjdk-8-jdk \ - ant \ - ca-certificates-java \ - bats \ - perl \ - cpanminus \ - cmake \ - g++ \ - libmysqlcppconn-dev \ - git \ - ruby\ - gem \ - libc6 \ - libgcc1 \ - libgssapi-krb5-2 \ - libicu60 \ - libssl1.1 \ - libstdc++6 \ - zlib1g \ - r-base +ENV DEBIAN_FRONTEND=noninteractive +RUN apt update -y && \ + apt install -y \ + curl \ + gnupg \ + software-properties-common && \ + curl -OL https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && \ + dpkg -i erlang-solutions_2.0_all.deb && \ + curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ + add-apt-repository ppa:deadsnakes/ppa -y && \ + apt update -y && \ + apt install -y \ + python3.8 \ + python3-pip \ + curl \ + wget \ + pkg-config \ + mysql-client \ + libmysqlclient-dev \ + openjdk-8-jdk \ + ant \ + ca-certificates-java \ + bats \ + perl \ + cpanminus \ + cmake \ + g++ \ + libmysqlcppconn-dev \ + git \ + ruby\ + gem \ + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu60 \ + libssl1.1 \ + libstdc++6 \ + zlib1g \ + r-base \ + postgresql \ + postgresql-contrib \ + libpq-dev \ + nodejs \ + esl-erlang \ + elixir \ + postgresql-server-dev-all && \ + update-ca-certificates -f # install go WORKDIR /root -ENV GO_VERSION=1.15.1 -RUN curl -O "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz" -RUN sha256sum "go${GO_VERSION}.linux-amd64.tar.gz" -RUN tar -xvf "go${GO_VERSION}.linux-amd64.tar.gz" -C /usr/local -RUN chown -R root:root /usr/local/go -RUN mkdir -p $HOME/go/{bin,src} +ENV GO_VERSION=1.17.1 ENV GOPATH=$HOME/go ENV PATH=$PATH:$GOPATH/bin ENV PATH=$PATH:$GOPATH/bin:/usr/local/go/bin -RUN go version +RUN curl -O "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz" && \ + sha256sum "go${GO_VERSION}.linux-amd64.tar.gz" && \ + tar -xvf "go${GO_VERSION}.linux-amd64.tar.gz" -C /usr/local && \ + chown -R root:root /usr/local/go && \ + mkdir -p $HOME/go/{bin,src} && \ + go version # go get the MySQL dependency RUN go get -u github.com/go-sql-driver/mysql # install dotnet -RUN curl -LO https://download.visualstudio.microsoft.com/download/pr/13b9d84c-a35b-4ffe-8f62-447a01403d64/1f9ae31daa0f7d98513e7551246899f2/dotnet-sdk-5.0.400-linux-x64.tar.gz -RUN tar -C /usr/local/bin -xzf dotnet-sdk-5.0.400-linux-x64.tar.gz -RUN dotnet --version - -# install node -RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - -RUN apt install -y nodejs +RUN curl -LO https://download.visualstudio.microsoft.com/download/pr/13b9d84c-a35b-4ffe-8f62-447a01403d64/1f9ae31daa0f7d98513e7551246899f2/dotnet-sdk-5.0.400-linux-x64.tar.gz && \ + tar -C /usr/local/bin -xzf dotnet-sdk-5.0.400-linux-x64.tar.gz && \ + dotnet --version # install mysql connector and pymsql RUN pip3 install mysql-connector-python PyMySQL sqlalchemy -# Fix certificate issues -RUN update-ca-certificates -f - # Setup JAVA_HOME -- useful for docker commandline ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/ @@ -88,33 +94,22 @@ RUN cpanm DBD::mysql COPY mysql-client-tests/ruby/Gemfile /mysql-client-tests/ruby/ COPY mysql-client-tests/ruby/Gemfile.lock /mysql-client-tests/ruby/ WORKDIR /mysql-client-tests/ruby -RUN gem install bundler -v 2.1.4 -RUN bundle install - -# install elixir -RUN apt-get install wget -RUN wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && dpkg -i erlang-solutions_2.0_all.deb -RUN apt-get update && apt-get -y upgrade -RUN apt-get install -y esl-erlang -RUN apt-get install -y elixir +RUN gem install bundler -v 2.1.4 && bundle install # install R -RUN apt-get update && apt-get -y upgrade -RUN apt-get install -y r-base -RUN Rscript -e 'install.packages("RMariaDB")' -RUN Rscript -e 'install.packages("RMySQL")' -RUN Rscript -e 'install.packages("DBI")' +RUN Rscript -e 'install.packages("RMariaDB")' && \ + Rscript -e 'install.packages("RMySQL")' && \ + Rscript -e 'install.packages("DBI")' # install postgres and psql -RUN apt-get install -y postgresql postgresql-contrib libpq-dev postgresql-server-dev-all RUN service postgresql start # install mysql_fdw WORKDIR /mysql-client-tests/mysql_fdw RUN git clone https://github.com/EnterpriseDB/mysql_fdw WORKDIR /mysql-client-tests/mysql_fdw/mysql_fdw -RUN make USE_PGXS=1 -RUN make USE_PGXS=1 install +RUN make USE_PGXS=1 && \ + make USE_PGXS=1 install # install dolt from source WORKDIR /root/building diff --git a/integration-tests/mysql-client-tests/go/go.mod b/integration-tests/mysql-client-tests/go/go.mod new file mode 100644 index 0000000000..d6478f0803 --- /dev/null +++ b/integration-tests/mysql-client-tests/go/go.mod @@ -0,0 +1,5 @@ +module github.com/dolthub/dolt/integration-tests/mysql-client-tests/go + +go 1.17 + +require github.com/go-sql-driver/mysql v1.6.0 diff --git a/integration-tests/mysql-client-tests/go/go.sum b/integration-tests/mysql-client-tests/go/go.sum new file mode 100644 index 0000000000..20c16d6f88 --- /dev/null +++ b/integration-tests/mysql-client-tests/go/go.sum @@ -0,0 +1,2 @@ +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= diff --git a/integration-tests/mysql-client-tests/mysql-client-tests.bats b/integration-tests/mysql-client-tests/mysql-client-tests.bats index bdd57811ae..36ca156534 100644 --- a/integration-tests/mysql-client-tests/mysql-client-tests.bats +++ b/integration-tests/mysql-client-tests/mysql-client-tests.bats @@ -36,7 +36,8 @@ teardown() { } @test "go go-sql-drive/mysql test" { - go run $BATS_TEST_DIRNAME/go/go-sql-driver-mysql-test.go $USER $PORT $REPO_NAME + (cd $BATS_TEST_DIRNAME/go; go build .) + $BATS_TEST_DIRNAME/go/go $USER $PORT $REPO_NAME } @test "python mysql.connector client" {