On 07/16/15 20:54, Vadim Zhukov wrote:
> Hello all.
> 
> Here is an analog of postgresql.port.mk for MariaDB.
> It helps to setup test environment for MySQL/MariaDB-enabled
> software, avoiding TEST_INTERACTIVE requirement and network
> communication. Already tested with (slightly tweaked)
> p5-DBD-mysql port.
> 
> Usage is similar to the postgresql.port.mk. Documentation
> bits to follow.
> 
> It took a long time because I initially lost my work in
> an accident (who needs to back up his /usr/ports, ever?!) and
> then had no time to re-do and finish the work.
> 
I backup $PORTSDIR/mystuff regularly, it is *my* stuff !
 
> Since a lot of water flowed since then, I'm asking for
> explicit okay to proceed.
>
ok, I think we can continue to develop and add documentation bits in tree.
 Cheers
  Giovanni 
 
> --
> WBR,
>   Vadim Zhukov
> 
> 
> # $OpenBSD$
> #
> # Helps testing MySQL/MariaDB-based software, no B/L/R-DEPS here.
> 
> MODMARIADB_TEST_CMD ?= \
>       ${MAKE_PROGRAM} ${ALL_TEST_FLAGS} -f ${MAKE_FILE} ${TEST_TARGET}
> 
> MODMARIADB_TEST_DBNAME ?=
> MODMARIADB_TEST_SOCKET =      ${WRKDIR}/mariadb.sock
> _MODMARIADB_TEST_DATA_DIR =   ${WRKDIR}/testdb
> 
> MODMARIADB_SERVER_ARGS = \
>       --no-defaults \
>       --datadir=${_MODMARIADB_TEST_DATA_DIR} \
>       --skip-grant-tables \
>       --skip-networking \
>       --socket=${MODMARIADB_TEST_SOCKET}
> 
> MODMARIADB_ADMIN_ARGS = \
>       --no-defaults \
>       --host=localhost \
>       --protocol=socket \
>       --socket=${MODMARIADB_TEST_SOCKET}
> 
> MODMARIADB_CLIENT_ARGS =      ${MODMARIADB_ADMIN_ARGS}
> 
> .if !empty(MODMARIADB_TEST_DBNAME)
> MODMARIADB_CLIENT_ARGS +=     --database=${MODMARIADB_TEST_DBNAME}
> .endif
> 
> TEST_DEPENDS +=               databases/mariadb,-server
> TEST_ENV += \
>       MYSQL_HOME=${WRKDIR} \
>       MYSQL_HOST=localhost \
>       MYSQL_UNIX_PORT=${MODMARIADB_TEST_SOCKET}
> 
> MODMARIADB_TEST_TARGET = \
>       rm -Rf ${_MODMARIADB_TEST_DATA_DIR}; \
>       export ${ALL_TEST_ENV}; \
>       ${LOCALBASE}/bin/mysql_install_db \
>               --skip-name-resolve \
>               ${MODMARIADB_SERVER_ARGS}; \
>       ${LOCALBASE}/libexec/mysqld \
>               ${MODMARIADB_SERVER_ARGS} & \
>       started=false; \
>       for i in $$(jot 10); do \
>               if mysqladmin ${MODMARIADB_ADMIN_ARGS} ping; then \
>                       started=true; \
>                       break; \
>               fi; \
>               sleep 1; \
>       done; \
>       $$started || { kill $$!; exit 1; };
> .if !empty(MODMARIADB_TEST_DBNAME)
> MODMARIADB_TEST_TARGET += \
>       ${LOCALBASE}/bin/mysqladmin ${MODMARIADB_ADMIN_ARGS} \
>           create ${MODMARIADB_TEST_DBNAME} || \
>           { kill $$!; exit 1; };
> .endif
> MODMARIADB_TEST_TARGET += \
>       set +e; \
>       cd ${WRKBUILD}; \
>       ${MODMARIADB_TEST_CMD}; \
>       Q=$$?; \
>       kill $$!; \
>       exit $$Q
> 
> .if !target(do-test)
> do-test:
>       ${MODMARIADB_TEST_TARGET}
> .endif
> 

Reply via email to