package t::lib::Prove::Plugin::StartArangoDB; use strict; use warnings; use Test::More; use Test::TCP; use File::Temp; our $ARANGODB; our $TMP_DIR; sub load { if ( my $arangodb_port = $ENV{TEST_ARANGODB_PORT} ) { diag 'TEST_ARANGODB_PORT explicitly set. Not starting ArangoDB.'; return; } $TMP_DIR = File::Temp->newdir; eval { $ARANGODB = Test::TCP->new( code => sub { my $port = shift; diag "Starting arangod on 127.0.0.1:$port"; my $dir = $TMP_DIR->dirname; exec "arangod --server.http-port $port $dir"; } ); $ENV{TEST_ARANGODB_PORT} = $ARANGODB->port; }; if ($@) { diag $@; } } END { undef $ARANGODB; undef $TMP_DIR; } 1; __END__