Added:
/trunk/server/t/conf-test.example
/trunk/server/t/conf-test.example/web_db.yml-mysql.example
/trunk/server/t/conf-test.example/web_db.yml-sqlite.example
Deleted:
/trunk/server/utils/filter-sqlite.pl
Modified:
/trunk/client/dist/_base/lib/SysFink/ScanHost.pm
/trunk/server/lib/SysFink/Conf/DBIC.pm
/trunk/server/lib/SysFink/DB/Schema.pm
/trunk/server/lib/SysFink/Server.pm
/trunk/server/sql/data-base.pl
/trunk/server/sql/schema.wiki
/trunk/server/sysfink-empty.db
/trunk/server/t
/trunk/server/utils/test-new.sh
=======================================
--- /dev/null
+++ /trunk/server/t/conf-test.example/web_db.yml-mysql.example Tue Jan 12
14:24:03 2010
@@ -0,0 +1,6 @@
+---
+db:
+ name : 'sysfink-dev'
+ dbi_dsn: 'dbi:mysql:database=sysfink-dev;host=localhost'
+ user: 'sysfink-dev'
+ pass: 'someDevPasswd223'
=======================================
--- /dev/null
+++ /trunk/server/t/conf-test.example/web_db.yml-sqlite.example Tue Jan 12
14:24:03 2010
@@ -0,0 +1,6 @@
+---
+db:
+ name : 'sysfink-dev'
+ dbi_dsn: 'dbi:SQLite:sysfink-dev.db'
+ user: ''
+ pass: ''
=======================================
--- /trunk/server/utils/filter-sqlite.pl Wed Jul 15 12:38:01 2009
+++ /dev/null
@@ -1,25 +0,0 @@
-use strict;
-use warnings;
-
-use Carp qw(carp croak verbose);
-use FindBin qw($RealBin);
-
-use lib "$RealBin/../lib";
-use lib "$RealBin/../libext";
-
-my $input_file = $ARGV[0] || './temp/schema-raw-create.sql';
-
-croak "Input file '$input_file' not found." unless -f $input_file;
-
-my $in_data = do {
- local $/;
- open INFH, $input_file or croak $!;
- <INFH>;
-};
-
-$in_data =~ s{(SET\s+FOREIGN_KEY_CHECKS\=[01]\;\s*\n?)}{-- $1}gisx;
-
-$in_data =~ s{(begin\s+transaction;\s*\n?)}{-- $1}gisx;
-$in_data =~ s{(commit;\s*\n?)}{-- $1}gisx;
-
-print $in_data;
=======================================
--- /trunk/client/dist/_base/lib/SysFink/ScanHost.pm Sun Jan 3 04:36:45
2010
+++ /trunk/client/dist/_base/lib/SysFink/ScanHost.pm Tue Jan 12 14:24:03
2010
@@ -182,49 +182,6 @@
return $flags_str;
}
-
-
-=head2 mode_to_lsmode
-
-Convert numeric node number to ls format. Used for debug output.
-
-=cut
-
-sub mode_to_lsmode() {
- my ( $self, $mode ) = @_;
-
- unless ( defined($mode) ) {
- return "??????????";
- }
-
- my @flag;
-
- $flag[0] = S_ISDIR($mode) ? 'd' : '-';
- $flag[0] = 'l' if (S_ISLNK($mode));
- $flag[0] = 'b' if (S_ISBLK($mode));
- $flag[0] = 'c' if (S_ISCHR($mode)) ;
- $flag[0] = 'p' if (S_ISFIFO($mode));
- $flag[0] = 's' if (S_ISSOCK($mode));
-
- $flag[1] = ($mode & S_IRUSR) >> 6 ? 'r' : '-';
- $flag[2] = ($mode & S_IWUSR) >> 6 ? 'w' : '-';
- $flag[3] = ($mode & S_IXUSR) >> 6 ? 'x' : '-';
- $flag[3] = 's' if (($mode & S_ISUID) >> 6);
-
- $flag[4] = ($mode & S_IRGRP) >> 3 ? 'r' : '-';
- $flag[5] = ($mode & S_IWGRP) >> 3 ? 'w' : '-';
- $flag[6] = ($mode & S_IXGRP) >> 3 ? 'x' : '-';
- $flag[6] = 's' if (($mode & S_ISGID) >> 6);
-
- $flag[7] = ($mode & S_IROTH) >> 0 ? 'r' : '-';
- $flag[8] = ($mode & S_IWOTH) >> 0 ? 'w' : '-';
- $flag[9] = ($mode & S_IXOTH) >> 0 ? 'x' : '-';
- $flag[9] = 't' if (($mode & S_ISVTX) >> 0);
-
-# ($mode & S_IRGRP) >> 3;
-
- return join('', @flag);
-}
=head2 get_dir_items
@@ -315,7 +272,6 @@
return ( 1, $is_dir ) unless $add_it;
- #my $lsmode_str = $self->mode_to_lsmode( $mode );
my $tmp_full_path = $full_path;
$tmp_full_path = '/' unless $full_path;
my $item_info = {
=======================================
--- /trunk/server/lib/SysFink/Conf/DBIC.pm Sun Jan 10 10:27:08 2010
+++ /trunk/server/lib/SysFink/Conf/DBIC.pm Tue Jan 12 14:24:03 2010
@@ -110,19 +110,19 @@
$last_section_name = $row{section_name};
}
- my $key = $row{key};
+ my $name = $row{name};
my $new_value = $row{value};
- if ( exists $mdata->{$key} ) {
- if ( ref $mdata->{$key} eq 'ARRAY' ) {
- my $prev_val = $mdata->{$key};
- push @{$mdata->{$key}}, $new_value;
+ if ( exists $mdata->{$name} ) {
+ if ( ref $mdata->{$name} eq 'ARRAY' ) {
+ my $prev_val = $mdata->{$name};
+ push @{$mdata->{$name}}, $new_value;
} else {
- my $prev_val = $mdata->{$key};
- $mdata->{$key} = [ $prev_val, $new_value ];
+ my $prev_val = $mdata->{$name};
+ $mdata->{$name} = [ $prev_val, $new_value ];
}
} else {
- $mdata->{$key} = $new_value;
+ $mdata->{$name} = $new_value;
}
}
@@ -182,9 +182,9 @@
$search_conf,
{
'join' => { 'mconf_sec_id' => { 'mconf_id' => 'machine_id' } },
- 'select' =>
[ 'machine_id.name', 'mconf_sec_id.name', 'key', 'value', 'num' ],
- 'as' =>
[ 'machine_name', 'section_name', 'key', 'value', 'num' ],
- 'order_by' =>
[ 'machine_id.machine_id', 'mconf_sec_id.mconf_sec_id', 'key', 'num' ],
+ 'select' =>
[ 'machine_id.name', 'mconf_sec_id.name', 'me.name', 'me.value', 'me.num' ],
+ 'as' =>
[ 'machine_name', 'section_name', 'name', 'value', 'num' ],
+ 'order_by' =>
[ 'machine_id.machine_id', 'mconf_sec_id.mconf_sec_id', 'me.name', 'me.num'
],
}
);
@@ -364,36 +364,36 @@
'name' => $section_name,
});
- foreach my $key ( keys %$section_kv ) {
-
- $order_number->{$section_name}->{$key} = 0 unless exists
$order_number->{$section_name}->{$key};
-
- my $value = $section_kv->{$key};
- print " key-value: $key\n" if $self->{ver} >= 4;
+ foreach my $name ( keys %$section_kv ) {
+
+ $order_number->{$section_name}->{$name} = 0 unless exists
$order_number->{$section_name}->{$name};
+
+ my $value = $section_kv->{$name};
+ print " key-value: $name\n" if $self->{ver} >= 4;
if ( ref $value eq 'ARRAY' ) {
foreach my $value_index ( 0..$#$value ) {
my $one_value = $value->[ $value_index ];
- $order_number->{$section_name}->{$key}++;
+ $order_number->{$section_name}->{$name}++;
my $mconf_sec_kv_row =
$schema->resultset('mconf_sec_kv')->create({
'mconf_sec_id' => $mconf_sec_row->id,
- 'num' =>
$order_number->{$section_name}->{$key},
- 'key' => $key,
+ 'num' =>
$order_number->{$section_name}->{$name},
+ 'name' => $name,
'value' => $one_value,
});
}
} elsif ( not ref $value ) {
- $order_number->{$section_name}->{$key}++;
+ $order_number->{$section_name}->{$name}++;
my $mconf_sec_kv_row =
$schema->resultset('mconf_sec_kv')->create({
'mconf_sec_id' => $mconf_sec_row->id,
- 'num' => $order_number->{$section_name}->{$key},
- 'key' => $key,
+ 'num' => $order_number->{$section_name}->{$name},
+ 'name' => $name,
'value' => $value,
});
} else {
- return $self->err("Uknown value for key
$machine_name:$section_name:$key.");
+ return $self->err("Uknown value for key
$machine_name:$section_name:$name.");
}
}
}
=======================================
--- /trunk/server/lib/SysFink/DB/Schema.pm Tue Jan 12 00:56:36 2010
+++ /trunk/server/lib/SysFink/DB/Schema.pm Tue Jan 12 14:24:03 2010
@@ -398,7 +398,7 @@
'size' => '11'
},
'found' => {
- 'data_type' => 'BOOL',
+ 'data_type' => 'BOOLEAN',
'is_auto_increment' => 0,
'default_value' => undef,
'is_foreign_key' => 0,
@@ -543,19 +543,19 @@
'is_nullable' => 0,
'size' => '50'
},
- 'desc' => {
+ 'descr' => {
'data_type' => 'TEXT',
'is_auto_increment' => 0,
'default_value' => 'NULL',
'is_foreign_key' => 0,
- 'name' => 'desc',
+ 'name' => 'descr',
'is_nullable' => 1,
'size' => '65535'
},
'ip' => {
'data_type' => 'VARCHAR',
'is_auto_increment' => 0,
- 'default_value' => 'NUL',
+ 'default_value' => 'NULL',
'is_foreign_key' => 0,
'name' => 'ip',
'is_nullable' => 1,
@@ -738,12 +738,12 @@
'is_nullable' => 1,
'size' => '10'
},
- 'desc' => {
+ 'descr' => {
'data_type' => 'VARCHAR',
'is_auto_increment' => 0,
'default_value' => 'NULL',
'is_foreign_key' => 0,
- 'name' => 'desc',
+ 'name' => 'descr',
'is_nullable' => 1,
'size' => '1500'
},
@@ -832,12 +832,12 @@
'is_nullable' => 1,
'size' => '11'
},
- 'key' => {
+ 'name' => {
'data_type' => 'VARCHAR',
'is_auto_increment' => 0,
'default_value' => undef,
'is_foreign_key' => 0,
- 'name' => 'key',
+ 'name' => 'name',
'is_nullable' => 0,
'size' => '50'
},
@@ -1121,12 +1121,12 @@
'is_nullable' => 1,
'size' => '500'
},
- 'desc' => {
+ 'descr' => {
'data_type' => 'VARCHAR',
'is_auto_increment' => 0,
'default_value' => 'NULL',
'is_foreign_key' => 0,
- 'name' => 'desc',
+ 'name' => 'descr',
'is_nullable' => 1,
'size' => '500'
},
@@ -1215,12 +1215,12 @@
'is_nullable' => 1,
'size' => '10'
},
- 'desc' => {
+ 'descr' => {
'data_type' => 'VARCHAR',
'is_auto_increment' => 0,
'default_value' => 'NULL',
'is_foreign_key' => 0,
- 'name' => 'desc',
+ 'name' => 'descr',
'is_nullable' => 1,
'size' => '1500'
},
=======================================
--- /trunk/server/lib/SysFink/Server.pm Tue Jan 12 07:40:03 2010
+++ /trunk/server/lib/SysFink/Server.pm Tue Jan 12 14:24:03 2010
@@ -484,8 +484,8 @@
if ( $conf_section_name ne 'general' ) {
my $tmp_section_conf = $mconf_obj->load_sec_conf( $machine_id,
$mconf_sec_id );
return $self->mconf_err() unless $tmp_section_conf;
- foreach my $key ( keys %$tmp_section_conf ) {
- $section_conf->{ $key } = $tmp_section_conf->{ $key };
+ foreach my $name ( keys %$tmp_section_conf ) {
+ $section_conf->{ $name } = $tmp_section_conf->{ $name };
}
}
@@ -503,10 +503,10 @@
};
# Check mandatory if not definned on command line.
- foreach my $key ( keys %$mandatory_keys ) {
- unless ( exists $self->{host_conf}->{ $key } ) {
- unless ( $section_conf->{ $key } ) {
- return $self->err("Can't find mandatory configuration
key '$key' for host '$host' in DB.");
+ foreach my $name ( keys %$mandatory_keys ) {
+ unless ( exists $self->{host_conf}->{ $name } ) {
+ unless ( $section_conf->{ $name } ) {
+ return $self->err("Can't find mandatory configuration
key '$name' for host '$host' in DB.");
}
}
}
@@ -516,10 +516,10 @@
$self->{host_conf}->{mconf_sec_id} = $mconf_sec_id;
# Set mandatory.
- foreach my $key ( keys %$mandatory_keys ) {
- unless ( exists $self->{host_conf}->{ $key } ) {
- my $host_conf_key = $mandatory_keys->{ $key };
- $self->{host_conf}->{ $host_conf_key } = $section_conf->{ $key
};
+ foreach my $name ( keys %$mandatory_keys ) {
+ unless ( exists $self->{host_conf}->{ $name } ) {
+ my $host_conf_key = $mandatory_keys->{ $name };
+ $self->{host_conf}->{ $host_conf_key } = $section_conf->{
$name };
}
}
@@ -1181,7 +1181,9 @@
machine
where sd.newer_id is null
and psd.newer_id = sd.sc_idata_id
- and si.sc_mitem_id = sd.sc_mitem_id
+ and psd.sc_mitem_id = sd.sc_mitem_id
+ and psd.scan_id < sd.scan_id
+ and psd.sc_mitem_id = sd.sc_mitem_id
and path.path_id = si.path_id
and scan.scan_id = sd.scan_id
and ( ? is null or scan.mconf_sec_id = ? )
@@ -1189,6 +1191,7 @@
and mc.mconf_id = mcs.mconf_id
and ( ? is null or machine.machine_id = ? )
and machine.active = 1
+ order by machine.machine_id, path.path
",
{}, @$data
);
@@ -1196,7 +1199,7 @@
$cols_sql_str,
[ $mconf_sec_id, $mconf_sec_id, $machine_id, $machine_id ]
);
- $self->dump( 'data', $data );
+ #$self->dump( 'data', $data );
my $prev_machine_name = '';
foreach my $row ( @$data ) {
=======================================
--- /trunk/server/sql/data-base.pl Sun Jan 10 14:51:11 2010
+++ /trunk/server/sql/data-base.pl Tue Jan 12 14:24:03 2010
@@ -18,7 +18,7 @@
$schema->resultset('aud_status')->delete_all();
$schema->resultset('aud_status')->populate([
- [ qw/ aud_status_id name desc / ],
+ [ qw/ aud_status_id name descr / ],
[ 1, 'ok (my)', 'Ok. I did it.', ],
[ 2, 'ok', 'Ok. I didn\'t do it.', ],
[ 3, 'unknown', 'I don\'t know. ', ],
@@ -31,7 +31,7 @@
$schema->resultset('pkg_type')->delete_all();
$schema->resultset('pkg_type')->populate([
- [ qw/ pkg_type_id name desc / ],
+ [ qw/ pkg_type_id name descr / ],
[ 1, 'dir', 'Items/idata in directory on server filesystem. Structure
starts inside pkgdir (config parameter).', ],
[ 2, 'tar', 'Packed directory. Same as dir, but packed to tar file
format or to any compressed tar.', ],
[ 3, 'rpm', 'Items/idata in RPM (a software package file format).', ],
=======================================
--- /trunk/server/sql/schema.wiki Tue Jan 12 00:56:36 2010
+++ /trunk/server/sql/schema.wiki Tue Jan 12 14:24:03 2010
@@ -3,11 +3,11 @@
<!-- perl utils\wiki_schema.pl sql\schema.wiki 1 > sql\schema.sql -->
<!-- PARSE PART DBCREATE BEGIN -->
<source lang=sql>
--- schema revision: $LastChangedRevision: 358 $
+-- schema revision: $LastChangedRevision$
SET FOREIGN_KEY_CHECKS=0;
-begin transaction;
-
--- Tags_order: Config, Machine, User.
+start transaction;
+
+-- Tags_order: User.
</source>
=== Tables ===
@@ -24,7 +24,7 @@
active BOOLEAN NOT NULL DEFAULT 1 COMMENT 'Zero means historical
data.',
created DATETIME NOT NULL COMMENT 'Account creation time.',
INDEX i_login (login),
- UNIQUE KEY unique_login_active (login, active),
+ UNIQUE KEY unique_login_active (login, active)
) TYPE=InnoDB COMMENT='User info. Tag:User.';
</source>
@@ -38,8 +38,8 @@
CREATE TABLE machine (
machine_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
- `desc` TEXT DEFAULT NULL COMMENT 'Description.',
- ip VARCHAR(15) DEFAULT NUL,
+ descr TEXT DEFAULT NULL COMMENT 'Description.',
+ ip VARCHAR(15) DEFAULT NULL,
active BOOLEAN NOT NULL DEFAULT 1,
INDEX i_name (name)
) TYPE=InnoDB COMMENT='Machine (computer or virtual machine) info.
Tag:Machine.';
@@ -97,7 +97,7 @@
mconf_sec_kv_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
mconf_sec_id INT UNSIGNED NOT NULL,
num INT UNSIGNED DEFAULT NULL,
- `key` VARCHAR(50) NOT NULL,
+ name VARCHAR(50) NOT NULL,
value VARCHAR(255) NOT NULL,
INDEX i_mconf_sec_id (mconf_sec_id),
INDEX i_mconf_sec_id_num (mconf_sec_id, num),
@@ -150,7 +150,7 @@
sc_mitem_id INT UNSIGNED NOT NULL,
scan_id INT UNSIGNED NOT NULL,
newer_id INT UNSIGNED DEFAULT NULL,
- found BOOL UNSIGNED NOT NULL,
+ found BOOLEAN NOT NULL,
mtime DATETIME DEFAULT NULL,
mode INT UNSIGNED DEFAULT NULL,
size INT UNSIGNED DEFAULT NULL,
@@ -163,6 +163,7 @@
dev_num INT UNSIGNED DEFAULT NULL,
ino_num INT UNSIGNED DEFAULT NULL,
symlink_path_id INT UNSIGNED DEFAULT NULL,
+ INDEX i_newer_id (newer_id),
INDEX i_sc_mitem_id (sc_mitem_id),
INDEX i_sc_mitem_id_found (sc_mitem_id, found),
INDEX i_sc_mitem_id_found_newer_id (sc_mitem_id, found, newer_id),
@@ -176,16 +177,16 @@
Consistency:
* Only 'found' or 'missiong' should have value equal 1.
-=== Table aud_status_id ===
+=== Table aud_status ===
<source lang=sql>
CREATE TABLE aud_status (
aud_status_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(10) DEFAULT NULL,
- `desc` VARCHAR(1500) DEFAULT NULL
+ descr VARCHAR(1500) DEFAULT NULL
) TYPE=InnoDB COMMENT='Possibilites for item audit status. Tag:Audit.
Type:Table of keys.';
</source>
-* name, desc
+* name, descr
** my ok -- Ok. I did it.
** ok - Ok. I didn't do it.
** unknown - I don't know.
@@ -223,7 +224,7 @@
CREATE TABLE pkg_type (
pkg_type_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(10) DEFAULT NULL,
- `desc` VARCHAR(1500) DEFAULT NULL
+ descr VARCHAR(1500) DEFAULT NULL
) TYPE=InnoDB COMMENT='Possibilites for packages types. Tag:Package.
Type:Table of keys.';
</source>
@@ -233,7 +234,7 @@
pkg_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(10) NOT NULL,
info VARCHAR(500) DEFAULT NULL,
- `desc` VARCHAR(500) DEFAULT NULL COMMENT 'Description for newes
version of packege.',
+ descr VARCHAR(500) DEFAULT NULL COMMENT 'Description for newes
version of packege.',
pkg_type_id INT UNSIGNED NOT NULL,
sub_path VARCHAR(500) DEFAULT NULL,
CONSTRAINT fk_pkg_pkg_type_id FOREIGN KEY (pkg_type_id) REFERENCES
pkg_type (pkg_type_id)
@@ -250,7 +251,7 @@
added INT UNSIGNED NOT NULL DEFAULT 0,
changed INT UNSIGNED NOT NULL DEFAULT 0,
removed INT UNSIGNED NOT NULL DEFAULT 0,
- CONSTRAINT fk_aud_user_id FOREIGN KEY (user_id) REFERENCES user
(user_id)
+ CONSTRAINT fk_pkg_load_user_id FOREIGN KEY (user_id) REFERENCES user
(user_id)
) TYPE=InnoDB COMMENT='Log for packages loading. Tag:Package.';
</source>
=======================================
--- /trunk/server/sysfink-empty.db Tue Jan 12 00:56:36 2010
+++ /trunk/server/sysfink-empty.db Tue Jan 12 14:24:03 2010
Binary file, no diff available.
=======================================
--- /trunk/server/utils/test-new.sh Tue Jan 12 07:40:03 2010
+++ /trunk/server/utils/test-new.sh Tue Jan 12 14:24:03 2010
@@ -3,53 +3,102 @@
function echo_help {
cat <<USAGE_END
Usage:
- utils/test-new.sh dev|current hostname.example.com verbosity_level
host_dist_type
+ utils/test-new.sh dev mysql|sqlite hostname.example.com verbosity_level
host_dist_type
+ utils/test-new.sh current auto hostname.example.com verbosity_level
host_dist_type
Example:
- utils/test-new.sh dev tapir1 3 linux-perl-md5
- utils/test-new.sh current tapir1 3 linux-perl-md5
+ utils/test-new.sh dev sqlite tapir1 3 linux-perl-md5
+ utils/test-new.sh dev mysql tapir1 3 linux-perl-md5
+ utils/test-new.sh current auto tapir1 3 linux-perl-md5
Advanced example:
clear && echo "Running 'dev' and 'current' tests and tee
to 'temp/test-new.out.'" \\
&& echo "Go ..." | tee temp/test-new.out \\
- && utils/test-new.sh dev tapir1 3 linux-perl-md5 | tee -a
temp/test-new.out \\
- && utils/test-new.sh current tapir1 3 linux-perl-md5 | tee -a
temp/test-new.out \\
+ && utils/test-new.sh dev sqlite tapir1 3 linux-perl-md5 | tee -a
temp/test-new.out \\
+ && utils/test-new.sh dev mysql tapir1 3 linux-perl-md5 | tee -a
temp/test-new.out \\
+ && utils/test-new.sh current auto tapir1 3 linux-perl-md5 | tee -a
temp/test-new.out \\
+ && echo -n "Failed summary: " && cat temp/test-new.out | grep
-i "failed" | wc -l \\
&& echo "" && echo "All done. Use 'cat temp/test-new.out | more' to see
output again."
USAGE_END
}
-if [ -z "$4" ]; then
+# Check number of params.
+if [ -z "$5" ]; then
echo_help
exit
fi
-
TEST_TYPE="$1"
-HOST="$2"
-VER="$3"
-DIST_TYPE="$4"
-
-BACKUP_DB_FILE="sysfink.db-test.backup"
+DB_TYPE="$2"
+HOST="$3"
+VER="$4"
+DIST_TYPE="$5"
if [ $TEST_TYPE != "dev" -a $TEST_TYPE != "current" ]; then
- echo "Error: Uknown test_type '$TEST_TYPE'."
+ echo "Error: Unknown test_type '$TEST_TYPE'."
echo ""
echo_help
exit
fi
+if [ $TEST_TYPE = "dev" ]; then
+ if [ $DB_TYPE != "sqlite" -a $DB_TYPE != "mysql" ]; then
+ echo "Error: Unknown db_type '$DB_TYPE'."
+ echo ""
+ echo_help
+ exit
+ fi
+else
+ if [ $DB_TYPE != "auto" ]; then
+ echo "Error: For test type 'current' only 'auto' db_type allowed."
+ echo ""
+ echo_help
+ exit
+ fi
+fi
+
+
+TEST_CONF_FILE="t/conf-test/web_db.yml-$DB_TYPE"
+
echo "-------------------------------------------------------------------------------------"
-echo "Starting '$TEST_TYPE' tests:";
+
+if [ $TEST_TYPE = "current" ]; then
+ GREP=`cat conf/web_db.yml | grep SQLite`
+ if [ -z "$GREP" ]; then
+ DB_TYPE="mysql"
+ else
+ DB_TYPE="sqlite"
+ fi
+ echo "Found db_type '$DB_TYPE'."
+fi
+
+echo "Starting '$TEST_TYPE' '$DB_TYPE' tests:";
echo ""
-if [ -f "sysfink.db" ]; then
- echo "Copying 'sysfink.db' to '$BACKUP_DB_FILE'."
- cp sysfink.db $BACKUP_DB_FILE || ( echo "Can't move." && exit )
- echo ""
-fi
-
+
+# test type: dev
if [ $TEST_TYPE = "dev" ]; then
+ if [ ! -f $TEST_CONF_FILE ]; then
+ echo "Can't find test config file '$TEST_CONF_FILE'."
+ exit
+ fi
+
+ IN_FILE="conf/web_db.yml"
+ OUT_FILE="conf/web_db.yml-test.backup"
+ if [ -f "$IN_FILE" ]; then
+ echo "Moving '$IN_FILE' to '$OUT_FILE'."
+ mv "$IN_FILE" "$OUT_FILE" || ( echo "Can't move." && exit )
+ echo ""
+ fi
+
+ IN_FILE="$TEST_CONF_FILE"
+ OUT_FILE="conf/web_db.yml"
+ if [ -f "$IN_FILE" ]; then
+ echo "Copying '$IN_FILE' to '$OUT_FILE'."
+ cp "$IN_FILE" "$OUT_FILE" || ( echo "Can't move." && exit )
+ echo ""
+ fi
export SYSFINK_DEVEL=1
@@ -57,24 +106,40 @@
./utils/all-sql.sh 1
echo ""
- if [ -f "sysfink.db" ]; then
- echo "Removing sysfink.db"
- rm sysfink.db
- echo ""
+ if [ "$DB_TYPE" = "sqlite" ]; then
+ if [ -f "sysfink-dev.db" ]; then
+ echo "Removing sysfink-dev.db"
+ rm "sysfink-dev.db"
+ echo ""
+ fi
fi
- echo "Executing temp/schema-raw-create-sqlite.sql (perl
utils/db-run-sqlscript.pl):"
- perl ./utils/db-run-sqlscript.pl temp/schema-raw-create-sqlite.sql 1
+ if [ "$DB_TYPE" = "sqlite" ]; then
+ echo "Executing temp/schema-raw-create-sqlite.sql (perl
utils/db-run-sqlscript.pl):"
+ perl ./utils/db-run-sqlscript.pl temp/schema-raw-create-sqlite.sql
1
+ else
+ echo "Executing temp/schema.sql (perl utils/db-run-sqlscript.pl):"
+ perl ./utils/db-run-sqlscript.pl temp/schema.sql 1
+ fi
echo ""
echo "Executing sql/data-base.pl:"
perl ./sql/data-base.pl
echo ""
- echo "Copying 'sysfink.db' to 'sysfink-empty.db'."
- cp sysfink.db sysfink-empty.db
- echo ""
-
+ if [ "$DB_TYPE" = "sqlite" ]; then
+ IN_FILE="sysfink-dev.db"
+ OUT_FILE="sysfink-empty.db"
+ if [ -f "$IN_FILE" ]; then
+ echo "Copying '$IN_FILE' to '$OUT_FILE'."
+ cp "$IN_FILE" "$OUT_FILE" || ( echo "Can't move." && exit )
+ echo ""
+ else
+ echo "Input file '$IN_FILE' not found."
+ exit
+ fi
+ fi
+
echo "Executing sql/data-dev.pl:"
perl ./sql/data-dev.pl
echo ""
@@ -83,7 +148,38 @@
perl sysfink.pl --cmd=mconf_to_db --mconf_path="t/conf-machines-test"
echo ""
+# test type: current
else
+ if [ "$DB_TYPE" = "sqlite" ]; then
+ if [ ! -f "sysfink.db" ]; then
+ echo "Current, but sysfink.db not found -> recreating:";
+
+ echo "Running utils/all-sql.sh"
+ ./utils/all-sql.sh 1
+ echo ""
+
+ echo "Executing temp/schema-raw-create-sqlite.sql (perl
utils/db-run-sqlscript.pl):"
+ perl ./utils/db-run-sqlscript.pl
temp/schema-raw-create-sqlite.sql 1
+
+ echo "Executing sql/data-base.pl:"
+ perl ./sql/data-base.pl
+ echo ""
+
+ echo "Executing sql/data-dev.pl:"
+ perl ./sql/data-stable.pl
+ echo ""
+
+ else
+ IN_FILE="sysfink.db"
+ OUT_FILE="temp/$IN_FILE-test.backup"
+ if [ -f "$IN_FILE" ]; then
+ echo "Copying '$IN_FILE' to '$OUT_FILE'."
+ cp "$IN_FILE" "$OUT_FILE" || ( echo "Can't copy." && exit )
+ echo ""
+ fi
+ fi
+ fi
+
echo "Running perl sysfink.pl --cmd=mconf_to_db"
perl sysfink.pl --cmd=mconf_to_db
echo ""
@@ -121,24 +217,29 @@
&& perl sysfink.pl --host=$HOST --cmd=scan_test --section=fastscan
--ver=$VER | tail -n 15 \
&& echo ""
+# test type: dev
if [ $TEST_TYPE = "dev" ]; then
echo "Running 'perl ... --cmd=scan --section=testscan'."
perl sysfink.pl --host=$HOST --cmd=scan --section=testscan --ver=$VER
echo "Done."
- echo "Moving 'sysfink.db' to 'temp/sysfink-dev.db'."
- mv sysfink.db temp/sysfink-dev.db || ( echo "Moving failed." && exit )
- echo ""
-
export SYSFINK_DEVEL=0
-else
- echo "Moving 'sysfink.db' to 'temp/sysfink-current.db'."
- mv sysfink.db temp/sysfink-current.db || ( echo "Moving failed." &&
exit )
- echo ""
-fi
-
-if [ -f "$BACKUP_DB_FILE" ]; then
- echo "Moving '$BACKUP_DB_FILE' back to 'sysfink.db'."
- mv $BACKUP_DB_FILE sysfink.db || ( echo "Moving back failed." && exit )
- echo ""
+
+ IN_FILE="sysfink-dev.db"
+ OUT_FILE="temp/$IN_FILE"
+ if [ -f "$IN_FILE" ]; then
+ echo "Moving '$IN_FILE' to '$OUT_FILE'."
+ mv "$IN_FILE" "$OUT_FILE" || ( echo "Can't move." && exit )
+ echo ""
+ fi
+
+ IN_FILE="conf/web_db.yml-test.backup"
+ OUT_FILE="conf/web_db.yml"
+ if [ -f "$IN_FILE" ]; then
+ echo "Moving '$IN_FILE' to '$OUT_FILE'."
+ mv "$IN_FILE" "$OUT_FILE" || ( echo "Can't move." && exit )
+ echo ""
+ fi
+
fi
+