@@ -256,12 +256,26 @@ jobs:
256256 client-version: mariadbconc-3.0.2
257257 - server-version: mysql-4.1.22
258258 client-version: mariadbconc-3.0.6
259- # MySQL client versions 8.0.4 - 8.0.34 and 8.1.0 have bug which
259+ # MySQL client versions 8.0.4 - 8.4.0 and 8.1.0 have bug which
260260 # prevents connection to MySQL server versions prior 5.5.7
261261 - server-version: mysql-4.1.22
262- client-version: mysql-8.0.35
262+ client-version: mysql-8.0.3-rc
263263 - server-version: mysql-5.1.72
264264 client-version: mysql-8.0.3-rc
265+ - server-version: system-pic
266+ client-version: system-pic
267+ - server-version: mysql-5.7.43
268+ client-version: system-pic
269+ - server-version: mysql-8.0.35
270+ client-version: system-pic
271+ - server-version: mariadb-5.5.40
272+ client-version: system-pic
273+ - server-version: mariadb-10.0.38
274+ client-version: system-pic
275+ - server-version: mariadb-10.2.44
276+ client-version: system-pic
277+ - server-version: mariadb-10.4.2
278+ client-version: system-pic
265279 - server-version: none
266280 client-version: system
267281 - perl-version: 5.12.0
@@ -313,6 +327,21 @@ jobs:
313327 sudo apt install mariadb-server
314328 sudo systemctl start mariadb.service
315329 sudo mariadb -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost' IDENTIFIED BY 'test'"
330+ - name : Install MySQL embedded PIC library
331+ if : ${{ matrix.client-version == 'system-pic' || matrix.server-version == 'system-pic' }}
332+ run : |
333+ wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/universe/m/mysql-5.5/libmysqld-pic_5.5.62-0ubuntu0.14.04.1_amd64.deb -O /tmp/libmysqld-pic_5.5.62-0ubuntu0.14.04.1_amd64.deb
334+ wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/main/m/mysql-5.5/libmysqlclient-dev_5.5.62-0ubuntu0.14.04.1_amd64.deb -O /tmp/libmysqlclient-dev_5.5.62-0ubuntu0.14.04.1_amd64.deb
335+ wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/main/m/mysql-5.5/libmysqlclient18_5.5.62-0ubuntu0.14.04.1_amd64.deb -O /tmp/libmysqlclient18_5.5.62-0ubuntu0.14.04.1_amd64.deb
336+ wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.6_amd64.deb -O /tmp/multiarch-support_2.27-3ubuntu1.6_amd64.deb
337+ sudo apt install libaio-dev libwrap0-dev
338+ sudo apt install /tmp/libmysqld-pic_5.5.62-0ubuntu0.14.04.1_amd64.deb /tmp/libmysqlclient-dev_5.5.62-0ubuntu0.14.04.1_amd64.deb /tmp/libmysqlclient18_5.5.62-0ubuntu0.14.04.1_amd64.deb /tmp/multiarch-support_2.27-3ubuntu1.6_amd64.deb
339+ echo 'extern int sched_yield(void); int pthread_yield(void) { return sched_yield(); }' > "$HOME/libpthread_yield.c"
340+ gcc -O2 -o "$HOME/libpthread_yield.o" -c "$HOME/libpthread_yield.c"
341+ rm -f "$HOME/libpthread_yield.a"
342+ ar rcs "$HOME/libpthread_yield.a" "$HOME/libpthread_yield.o"
343+ sudo cp "$HOME/libpthread_yield.a" /usr/lib/mysql/
344+
316345 - name : Install Perl system
317346 if : ${{ matrix.perl-version == 'system' }}
318347 run : |
@@ -334,6 +363,7 @@ jobs:
334363 mariadb*) DB=MariaDB ;;
335364 none) DB=""; ;;
336365 system) DB=""; ;;
366+ system-pic) DB=""; ;;
337367 *) DB=unknown ;;
338368 esac
339369 case "${{ matrix.client-version }}" in
@@ -422,10 +452,13 @@ jobs:
422452 if [ ! -f "$CLIENT_FILE" ]; then wget --progress=bar:force "$CLIENT_URL" -O "$CLIENT_FILE" || exit 1; fi
423453 fi
424454 if [ "${{ matrix.client-version }}" = "system-pic" ]; then
425- sed 's/-L\$pkglibdir *-lmysqld/-L\/usr\/lib\/mysql -lmysqld_pic /' `which mysql_config_pic` > "$HOME/mysql_config_pic"
455+ sed 's/-L\$pkglibdir *-lmysqld/-L\/usr\/lib\/mysql -lmysqld_pic -lpthread_yield /' `which mysql_config_pic` > "$HOME/mysql_config_pic"
426456 chmod +x $HOME/mysql_config_pic
427- apt download mysql-server-core-5.5
428- dpkg -x mysql-server-core-5.5_*.deb $HOME/mysql-server-core-5.5
457+ fi
458+ if [ "${{ matrix.client-version }}" = "system-pic" ] || [ "${{ matrix.server-version }}" = "system-pic" ]; then
459+ wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/main/m/mysql-5.5/mysql-server-core-5.5_5.5.62-0ubuntu0.14.04.1_amd64.deb -O /tmp/mysql-server-core-5.5_5.5.62-0ubuntu0.14.04.1_amd64.deb
460+ dpkg -x /tmp/mysql-server-core-5.5_5.5.62-0ubuntu0.14.04.1_amd64.deb $HOME/mysql-server-core-5.5
461+ mkdir -p "$HOME/datadir"
429462 fi
430463 if [ -n "$DB" ]; then
431464 cpanm --quiet --notest --skip-satisfied MySQL::Sandbox || exit 1
@@ -470,6 +503,9 @@ jobs:
470503 export DBD_MARIADB_TESTPASSWORD=test
471504 export DBD_MARIADB_TESTHOST=127.0.0.1
472505 export DBD_MARIADB_TESTPORT=3306
506+ elif [ "${{ matrix.server-version }}" = "system-pic" ]; then
507+ export DBD_MARIADB_TESTHOST=embedded
508+ export DBD_MARIADB_TESTEMBDATADIR="$HOME/datadir"
473509 elif [ "${{ matrix.server-version }}" = "none" ]; then
474510 export DBD_MARIADB_TESTHOST=0.0.0.0
475511 export DBD_MARIADB_TESTPORT=0
@@ -496,8 +532,10 @@ jobs:
496532 fi
497533 elif [ "${{ matrix.client-version }}" = "same-as-server" ] && [ "${{ matrix.server-version }}" != "system" ]; then
498534 export DBD_MARIADB_CONFIG="$HOME/mysql_config"
535+ export DBD_MARIADB_TESTEMBOPTIONS="--language=`find $HOME/sandbox/* -name english | sed 's/english//'`,--log-error=/dev/null"
499536 elif [ "${{ matrix.client-version }}" = "system-pic" ]; then
500537 export DBD_MARIADB_CONFIG="$HOME/mysql_config_pic"
538+ export DBD_MARIADB_TESTEMBOPTIONS="--language=$HOME/mysql-server-core-5.5/usr/share/mysql/,--log-error=/dev/null"
501539 export DBD_MARIADB_REQUIREEMBSUP=1
502540 fi
503541 make realclean || true
@@ -513,12 +551,9 @@ jobs:
513551 if [ "${{ matrix.perl-version }}" = "system" ]; then
514552 eval $(perl -I"$HOME/perl5/lib/perl5" -Mlocal::lib)
515553 fi
516- if [ "${{ matrix.client-version }}" = "system-pic" ]; then
517- export DBD_MARIADB_TESTLANGDIR="$HOME/mysql-server-core-5.5/usr/share/mysql/english"
518- elif [ "${{ matrix.server-version }}" != "none" ] && [ "${{ matrix.server-version }}" != "system" ]; then
519- export DBD_MARIADB_TESTLANGDIR=`find $HOME/sandbox/* -name english | head -1`
554+ if [ "${{ matrix.server-version }}" != "system-pic" ]; then
555+ export HARNESS_OPTIONS=j4
520556 fi
521- export HARNESS_OPTIONS=j4
522557 export RELEASE_TESTING=1
523558 if [ "${{ matrix.server-version }}" != "none" ]; then
524559 export CONNECTION_TESTING=1
0 commit comments