#!/usr/bin/perl

use strict;
use warnings;

use lib 'lib';

use File::Temp;

use Text::Tradition;
use Text::Tradition::Directory;

## We're loading the besoin data, and dumping the backend db rows into
## a .sql file for load testing (testing of data loading, not the
## other sort)
my $sql = 't/data/speed_test_load.sql';
my $uuid = 'load-test';

print "Loading t/data/besoin.xml and storing it in $sql ...\n";

## Load tradition data:
my $tradition = Text::Tradition->new(
   'input' => 'Self',
   'file'  => "t/data/besoin.xml"
);
$tradition->add_stemma(dotfile => "t/data/besoin.dot");

## save to db:
my $fh = File::Temp->new();
my $file = $fh->filename;
$fh->close;

my $dsn = "dbi:SQLite:$file";
my $dir = Text::Tradition::Directory->new(
    dsn => $dsn,
    extra_args => { create => 1 },
);
my $scope = $dir->new_scope;
$dir->store($uuid, $tradition);

## out to SQL file:
`sqlite3 $file ".dump" > $sql`;

print "$sql updated,\n";

=head1 NAME

update-load-test.pl - Recreate the test file using for testing the speed of loading Traditions from a KiokuDB.

=head1 USAGE

    perl t/bin/update-load-test.pl

This small script exists to enable an update of the test data for the
speed tests in F<t/data/load-save-speed.t>. It loads the
F<t/data/besoin.xml> test file and outputs the resulting database to
F<t/data/speed_test_load.sql>.

Only run this script after changes have been made to the way
Traditions data is stored in the database.


