diff options
author | Bradford Hovinen <hovinen@ximian.com> | 2001-02-20 02:43:35 +0000 |
---|---|---|
committer | Bradford Hovinen (Gdict maintainer) <hovinen@src.gnome.org> | 2001-02-20 02:43:35 +0000 |
commit | afc3333a5a4d9600bf0a9abe0d4c0e9ad311b11e (patch) | |
tree | f3ce8ffb22291c38369f2671d42817342c7d3075 /archiver/tests/test-2.sh | |
parent | bb7ec451a6e715753c1dae31be15dc4a55159b9c (diff) | |
download | gnome-control-center-afc3333a5a4d9600bf0a9abe0d4c0e9ad311b11e.tar.gz |
Added test-1.sh and test-2.sh, the first two tests in the test suite
2001-02-19 Bradford Hovinen <hovinen@ximian.com>
* Added test-1.sh and test-2.sh, the first two tests in the test suite
* location.c (location_foreach_backend): Update to use BackendNote
(do_rollback): Don't do rollback if the doc is NULL
(location_store_xml): Return if this location does not contain the
backend specified
(location_store_xml): Use fprintf rather than g_warning
(subtract_xml_node):
(merge_xml_nodes): Update child node while iterating
* config-log.c (config_log_get_rollback_ids_for_date): Remove
* location.c (location_set_arg): ref inherited object
* main.c (main): Don't check if the location is default; don't
create default location if non-existant
(main): Signal error if the user is adding a location and did not
specify a name
(main): Use fprintf to signal the error that a location could not
be opened
(main): Signal error and exit when archive cannot be opened,
rather than using g_error
(do_add_location): Check for NULL location_id
(do_add_location): Create default location if it does not exist
and it is specified as the parent
* archive.c (archive_get_current_location_id): Create the default
location if it does not exist
* backend-list.c (backend_list_contains): Use strcmp and iterate
through the list
* location.c (location_contains): Read whether the backend is in
the master list if this location is toplevel
2001-02-18 Bradford Hovinen <hovinen@ximian.com>
* main.c (do_add_backend): Support ContainmentType specification
(do_store): Support StoreType specification
(struct store_options): Add set of options to support
compare_parent, mask_previous, options
(struct add_remove_backend_options): Add option for partial
containment when adding backend
* location.c (subtract_xml_node):
(merge_xml_nodes):
(compare_xml_nodes):
(merge_xml_docs):
(subtract_xml_doc): Implement. XML node compare/merging operations
(location_store): Rewrite to call location_store_xml
(location_store_xml): Include support for diffing with
configuration data from parent config
(location_dump_rollback_data): Rewrite to use
location_load_rollback_data
(dump_xml_data): Remove
(do_rollback): Rewrite to use xmlDocDump; pass xmlDocPtr rather
than id number
(location_rollback_id): Add node merging support
(location_rollback_backend_by):
(location_rollback_backend_to): Rewrite to use
location_load_rollback_data
(location_rollback_backends_to): Rewrite to iterate through
backend list and call location_rollback_backend_to for each
element
(location_rollback_all_to): Ditto
2001-02-14 Bradford Hovinen <hovinen@ximian.com>
* location.h (_ContainmentType): Introduce. Specifies the type of
containment (full, partial, none), of a backend in a location
* location.c: Added struct BackendNote; have backend list include
type of containment as well as backend id
(location_contains): Use find_note
(find_note): Implement. Finds a note for the given backend id in
the backend list
(backend_note_new):
(backend_note_destroy): Implement. Convenience functions for
creating and destroying backend notes
(load_metadata_file):
(write_metadata_file): Read/write type of backend containment
(full or partial)
(location_add_backend): Pass parameter telling whether containment
is partial
Diffstat (limited to 'archiver/tests/test-2.sh')
-rwxr-xr-x | archiver/tests/test-2.sh | 287 |
1 files changed, 287 insertions, 0 deletions
diff --git a/archiver/tests/test-2.sh b/archiver/tests/test-2.sh new file mode 100755 index 000000000..b14a96189 --- /dev/null +++ b/archiver/tests/test-2.sh @@ -0,0 +1,287 @@ +#!/bin/sh +# +# test-2.sh +# Copyright (C) 2001 Ximian, Inc. +# Written by Bradford Hovinen <hovinen@ximian.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. +# +# Test suite, part II +# +# Given an archive to work with (global or per-user): +# +# - Destroy the entire archive forcibly (rm -rf) +# - Create a new location inheriting from the default location +# (the default location should be created automatically in this case) +# - Sets the new location as the current one +# - Stores data for a backend not contained in the new location +# (this should pass the data through to default) +# - Adds a backend to the new location (full containment) +# - Stores data for that backend in the new location +# - Adds a backend to the new location (partial containment) +# - Stores data for that backend in the new location + +XIMIAN_ARCHIVER=${XIMIAN_ARCHIVER:-'../ximian-archiver'} + +function get_unused_tmpfile () { + tmp_file_no=0 + + while [ -e "/tmp/$1-$tmp_file_no" ]; do + let 'tmp_file_no=tmp_file_no+1' + done + + echo "/tmp/$1-$tmp_file_no"; +} + +function run_command () { + input_param=$1 + shift + + if [ "x$use_gdb" == "xyes" ]; then + commands_file=`get_unused_tmpfile gdb-commands-file` + echo "set args $extra_args $@ <$input_param" >$commands_file + gdb ../.libs/ximian-archiver -x $commands_file + rm -f $commands_file + else + echo "Running archiver program with the following command line:" >&2 + echo "$XIMIAN_ARCHIVER $extra_args $@ <$input_param" >&2 + $XIMIAN_ARCHIVER $extra_args $@ <$input_param + echo + fi +} + +if [ "x$1" == "x" ]; then + echo "Usage: test-2.sh --global|--per-user [--gdb]" + exit 1 +fi + +for test_option; do + case "$test_option" in + --global) + extra_args="--global" + archive_dir=/usr/share/ximian-config + ;; + + --per-user) + extra_args="" + archive_dir=$HOME/.gnome/ximian-config + ;; + + --gdb) + use_gdb=yes + ;; + + *) + echo "Error -- invalid option: $test_option" + exit 1 + esac +done + +if [ -d $archive_dir ]; then + mv $archive_dir "$archive_dir-backup" +fi + +############################################################################## +# Test proper +############################################################################## + +# Test 1: Creating a new location + +run_command /dev/null --add-location --parent=default --location=Boston-Office +run_command /dev/null --change-location --location=Boston-Office + +# Test 2: Storing data that should "pass through" to the parent + +archiver_test_data_file1=`get_unused_tmpfile ximian-archiver-test-data`; + +cat >$archiver_test_data_file1 <<EOF +<?xml version="1.0"?> +<background-properties> + <bg-color1>#111128</bg-color1> + <bg-color2>#796dff</bg-color2> + <enabled/> + <wallpaper/> + <gradient/> + <orientation>vertical</orientation> + <wallpaper-type>0</wallpaper-type> + <wallpaper-filename>/home/hovinen/media/Propaganda/Vol3/9a.jpg</wallpaper-filename> + <wallpaper-sel-path>./</wallpaper-sel-path> + <auto-apply/> + <adjust-opacity/> + <opacity>172</opacity> +</background-properties> + +EOF + +run_command $archiver_test_data_file1 \ + --store --backend=background-properties-capplet + +# Test 3: Adding a backend (full containment) and storing data that +# should be stored in the child location + +run_command /dev/null --add-backend --full \ + --backend=keyboard-properties-capplet + +archiver_test_data_file2=`get_unused_tmpfile ximian-archiver-test-data`; + +cat >$archiver_test_data_file2 <<EOF +<?xml version="1.0"?> +<keyboard-properties> + <rate>255</rate> + <delay>0</delay> + <repeat/> + <volume>0</volume> +</keyboard-properties> + +EOF + +run_command $archiver_test_data_file2 \ + --store --backend=keyboard-properties-capplet + +# Test 4: Adding a backend (partial containment) and storing data that +# should be stored in the child location + +archiver_test_data_file3=`get_unused_tmpfile ximian-archiver-test-data`; + +cat >$archiver_test_data_file3 <<EOF +<?xml version="1.0"?> +<mouse-properties> + <acceleration>7</acceleration> + <threshold>1</threshold> +</mouse-properties> + +EOF + +run_command $archiver_test_data_file3 \ + --store --backend=mouse-properties-capplet + +run_command /dev/null --add-backend --partial \ + --backend=mouse-properties-capplet + +archiver_test_data_file4=`get_unused_tmpfile ximian-archiver-test-data`; + +cat >$archiver_test_data_file4 <<EOF +<?xml version="1.0"?> +<mouse-properties> + <acceleration>7</acceleration> + <threshold>3</threshold> +</mouse-properties> + +EOF + +run_command $archiver_test_data_file4 \ + --store --backend=mouse-properties-capplet --compare-parent + +# This should be the resulting file: + +archiver_test_data_file4_correct=`get_unused_tmpfile ximian-archiver-check`; + +cat >$archiver_test_data_file4_correct <<EOF +<?xml version="1.0"?> +<mouse-properties> + <threshold>3</threshold> +</mouse-properties> +EOF + +# Test 5: Retrieve the background properties data previously stored +# and compare it with the data we have here to see if everything is ok + +archiver_test_data_file5=`get_unused_tmpfile ximian-archiver-test-data` + +run_command /dev/null --rollback --show --last \ + --backend=background-properties-capplet \ + >$archiver_test_data_file5 + +############################################################################## +# Results check +############################################################################## + +echo -n "Checking whether default location was created properly..." + +if [ -d "$archive_dir/default" ]; then + echo "yes -- good" +else + echo "no -- error" +fi + +echo -n "Checking whether derived location was created properly..." + +if [ -d "$archive_dir/Boston-Office" ]; then + echo "yes -- good" +else + echo "no -- error" +fi + +echo -n "Checking whether the XML data match the XML data given..." + +differences_file=`get_unused_tmpfile differences` + +diff -u "$archive_dir/Boston-Office/00000001.xml" \ + $archiver_test_data_file4_correct \ + >$differences_file + +if [ ! -s $differences_file ]; then + echo "yes -- good" +else + echo "no -- error" + echo "Differences are as follows:" + cat $differences_file + echo +fi + +rm -f $differences_file + +echo -n "Checking whether the XML data retrieved match the XML data given..." + +differences_file=`get_unused_tmpfile differences` + +diff -u $archiver_test_data_file5 $archiver_test_data_file1 >$differences_file + +if [ ! -s $differences_file ]; then + echo "yes -- good" +else + echo "no -- error" + echo "Differences are as follows:" + cat $differences_file + echo +fi + +rm -f $differences_file + +############################################################################## +# Putting the results together +############################################################################## + +rm -f $archiver_test_data_file1 +rm -f $archiver_test_data_file2 +rm -f $archiver_test_data_file3 +rm -f $archiver_test_data_file4 +rm -f $archiver_test_data_file5 + +results_dir="ximian-config-results-`date +%Y%m%d`" +results_dir=`get_unused_tmpfile $results_dir` +mkdir $results_dir + +(cd $archive_dir && tar cf - *) | (cd $results_dir && tar xf -) +rm -rf $archive_dir + +if [ -d "$archive_dir-backup" ]; then + mv "$archive_dir-backup" $archive_dir +fi + +echo +echo "Test complete" +echo "Resulting archive data in $results_dir" |