Merge pull request #868 from liquidata-inc/tim/perl-mysql-client-test

Added perl mysql client tests
This commit is contained in:
Tim Sehn
2020-09-10 11:26:42 -07:00
committed by GitHub
3 changed files with 43 additions and 1 deletions

View File

@@ -25,7 +25,9 @@ RUN apt install -y \
openjdk-8-jdk \
ant \
ca-certificates-java \
bats
bats \
perl \
cpanminus
# install dotnet
RUN wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
@@ -60,5 +62,8 @@ RUN curl -L -o /mysql-client-tests/java/mysql-connector-java-8.0.21.jar \
WORKDIR /mysql-client-tests/node
RUN npm install
# install cpan dependencies
RUN cpanm DBD::mysql
WORKDIR /mysql-client-tests
ENTRYPOINT ["/mysql-client-tests/entrypoint.sh"]

View File

@@ -58,3 +58,7 @@ teardown() {
# dotnet run uses output channel 3 which conflicts with bats so we pipe it to null
dotnet run -- $USER $PORT $REPO_NAME 3>&-
}
@test "perl DBD:mysql client" {
perl $BATS_TEST_DIRNAME/perl/dbd-mysql-test.pl $USER $PORT $REPO_NAME
}

View File

@@ -0,0 +1,33 @@
use strict;
use DBI;
my $QUERY_RESPONSE = [
{ "create table test (pk int, value int, primary key(pk))" => '0E0' },
{ "describe test" => 2 },
{ "insert into test (pk, value) values (0,0)" => 1 },
{ "select * from test" => 1 }
];
my $user = $ARGV[0];
my $port = $ARGV[1];
my $db = $ARGV[2];
my $dsn = "DBI:mysql:database=$db;host=127.0.0.1;port=$port";
my $dbh = DBI->connect($dsn, $user, "");
foreach my $query_response ( @{$QUERY_RESPONSE} ) {
my @query_keys = keys %{$query_response};
my $query = $query_keys[0];
my $exp_result = $query_response->{$query};
my $result = $dbh->do($query);
if ( $result != $exp_result ) {
print "QUERY: $query\n";
print "EXPECTED: $exp_result\n";
print "RESULT: $result\n";
exit 1
}
}
exit 0;