From 692c20eec6a6767272b57b98582e07d5c298e63a Mon Sep 17 00:00:00 2001 From: Andrew Ruthven Date: Tue, 28 Jun 2022 23:29:36 +1200 Subject: [PATCH] Don't inherit DB from previous test set --- testing/run_regressions.sh | 6 +- testing/tests/binding/1000-BIND.result | 6 +- testing/tests/binding/1001-BIND.result | 6 +- .../tests/binding/1004-PROPFIND-bound.result | 78 +---------- testing/tests/binding/Create-Database.result | 14 ++ testing/tests/binding/Load-Sample-Data.result | 15 +++ .../binding/Really-Upgrade-Database.result | 7 + testing/tests/binding/Upgrade-Database.result | 5 + testing/tests/binding/sample-data.sql | 126 ++++++++++++++++++ .../regression-suite/Dump-Database.result | 0 .../regression-suite/Restore-Database.result | 0 11 files changed, 176 insertions(+), 87 deletions(-) create mode 100644 testing/tests/binding/Create-Database.result create mode 100644 testing/tests/binding/Load-Sample-Data.result create mode 100644 testing/tests/binding/Really-Upgrade-Database.result create mode 100644 testing/tests/binding/Upgrade-Database.result create mode 100644 testing/tests/binding/sample-data.sql create mode 100644 testing/tests/regression-suite/Dump-Database.result create mode 100644 testing/tests/regression-suite/Restore-Database.result diff --git a/testing/run_regressions.sh b/testing/run_regressions.sh index ff550eb4..4dbbc19d 100755 --- a/testing/run_regressions.sh +++ b/testing/run_regressions.sh @@ -197,7 +197,6 @@ initialise_regression() { ../dba/update-davical-database ${DBAOPTS} --dbname=${DBNAME} --appuser davical_app --owner davical_dba \ | sed -r 's/is version [.0-9]+/is version XX/' >"${RESULTS}/${TEST}" 2>&1 check_result "${TEST}" - } @@ -212,6 +211,7 @@ run_regression_suite() { restore_database else initialise_regression + dump_database fi for T in ${REGRESSION}/*.test ; do @@ -256,9 +256,7 @@ if [ "${SUITE}" = "all" ]; then for SUITE in ${ALLSUITES} ; do echo "Running $SUITE" REGRESSION="tests/${SUITE}" - if [ "${SUITE}" != "regression-suite" ]; then - dump_database - fi + run_regression_suite "${SUITE}" done else diff --git a/testing/tests/binding/1000-BIND.result b/testing/tests/binding/1000-BIND.result index 2a8b3f71..438adad8 100644 --- a/testing/tests/binding/1000-BIND.result +++ b/testing/tests/binding/1000-BIND.result @@ -7,11 +7,11 @@ Content-Length: 0 Content-Type: text/plain; charset="utf-8" - bind_id: >1603< + bind_id: >1014< bound_source_id: >161< - dav_displayname: >User 2's Calendar, as uploaded by Admin< + dav_displayname: >user2 home< dav_name: >/user4/user2/< dav_owner_id: >1005< - length: >8< + length: >NULL< parent_container: >/user4/< diff --git a/testing/tests/binding/1001-BIND.result b/testing/tests/binding/1001-BIND.result index 804f6656..fb59d595 100644 --- a/testing/tests/binding/1001-BIND.result +++ b/testing/tests/binding/1001-BIND.result @@ -9,11 +9,11 @@ Content-Type: text/xml; charset="utf-8" A resource already exists at the destination. - bind_id: >1603< + bind_id: >1014< bound_source_id: >161< - dav_displayname: >User 2's Calendar, as uploaded by Admin< + dav_displayname: >user2 home< dav_name: >/user4/user2/< dav_owner_id: >1005< - length: >8< + length: >NULL< parent_container: >/user4/< diff --git a/testing/tests/binding/1004-PROPFIND-bound.result b/testing/tests/binding/1004-PROPFIND-bound.result index 509f8fea..75fb62ef 100644 --- a/testing/tests/binding/1004-PROPFIND-bound.result +++ b/testing/tests/binding/1004-PROPFIND-bound.result @@ -18,33 +18,11 @@ HTTP/1.1 200 OK - - /caldav.php/user4/user2/ - - - User 2's Calendar, as uploaded by Admin - - /caldav.php/.resources/XX - - - - /caldav.php - user4 - - - /caldav.php - user2 - - - - HTTP/1.1 200 OK - - /caldav.php/user4/home/ - mir-test + user4 home /caldav.php/.resources/XX @@ -76,60 +54,6 @@ HTTP/1.1 200 OK - - /caldav.php/user4/nz_holidays/ - - - New Zealand Public Holidays - - /caldav.php/.resources/XX - - - - /caldav.php - user4 - - - - HTTP/1.1 200 OK - - - - /caldav.php/user4/us_holidays/ - - - US Holidays - - /caldav.php/.resources/XX - - - - /caldav.php - user4 - - - - HTTP/1.1 200 OK - - - - /caldav.php/user4/.out/ - - - User 4 Outbox - - /caldav.php/.resources/XX - - - - /caldav.php - user4 - - - - HTTP/1.1 200 OK - - /caldav.php/user4/calendar-proxy-read/ diff --git a/testing/tests/binding/Create-Database.result b/testing/tests/binding/Create-Database.result new file mode 100644 index 00000000..bf224505 --- /dev/null +++ b/testing/tests/binding/Create-Database.result @@ -0,0 +1,14 @@ + + +Supported locales updated. +Updated view: dav_principal.sql applied. +CalDAV functions updated. +RRULE functions updated. +Database permissions updated. +NOTE +==== +* The password for the 'admin' user has been set to 'nimda' + +Thanks for trying DAViCal! Check the configuration in /etc/davical/config.php. +For help, look at our website and wiki, or visit #davical on irc.oftc.net. + diff --git a/testing/tests/binding/Load-Sample-Data.result b/testing/tests/binding/Load-Sample-Data.result new file mode 100644 index 00000000..b86d6212 --- /dev/null +++ b/testing/tests/binding/Load-Sample-Data.result @@ -0,0 +1,15 @@ + setval +-------- + 1000 +(1 row) + + setval +-------- + 1000 +(1 row) + + setval +-------- + 10 +(1 row) + diff --git a/testing/tests/binding/Really-Upgrade-Database.result b/testing/tests/binding/Really-Upgrade-Database.result new file mode 100644 index 00000000..299acd5c --- /dev/null +++ b/testing/tests/binding/Really-Upgrade-Database.result @@ -0,0 +1,7 @@ +The database is version XX currently at revision 1.3.3. +No patches were applied. +Supported locales updated. +Updated view: dav_principal.sql applied. +CalDAV functions updated. +RRULE functions updated. +Database permissions updated. diff --git a/testing/tests/binding/Upgrade-Database.result b/testing/tests/binding/Upgrade-Database.result new file mode 100644 index 00000000..a34c672b --- /dev/null +++ b/testing/tests/binding/Upgrade-Database.result @@ -0,0 +1,5 @@ +Supported locales updated. +Updated view: dav_principal.sql applied. +CalDAV functions updated. +RRULE functions updated. +Database permissions updated. diff --git a/testing/tests/binding/sample-data.sql b/testing/tests/binding/sample-data.sql new file mode 100644 index 00000000..89ed56b6 --- /dev/null +++ b/testing/tests/binding/sample-data.sql @@ -0,0 +1,126 @@ +-- Some sample data to prime the database... +-- base-data.sql should be processed before this + +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 2, TRUE, current_date, current_date, 'andrew', '**x', 'Andrew McMillan', 'andrew@catalyst.net.nz' ); +INSERT INTO role_member (user_no, role_no) VALUES( 2, 1); + + +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 10, TRUE, current_date, current_date, 'user1', '**user1', 'User 1', 'user1@example.net' ); +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 11, TRUE, current_date, current_date, 'user2', '**user2', 'User 2', 'user2@example.net' ); +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 12, TRUE, current_date, current_date, 'user3', '**user3', 'User 3', 'user3@example.net' ); +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 13, TRUE, current_date, current_date, 'user4', '**user4', 'User 4', 'user4@example.net' ); +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 14, TRUE, current_date, current_date, 'user5', '**user5', 'User 5', 'user5@example.net' ); +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 15, TRUE, current_date, current_date, 'User Six', '**user6', 'User 6', 'user6@example.net' ); + +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 20, TRUE, current_date, current_date, 'manager1', '**manager1', 'Manager 1', 'manager1@example.net' ); + +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 30, TRUE, current_date, current_date, 'assistant1', '**assistant1', 'Assistant 1', 'assistant1@example.net' ); + + +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 100, TRUE, current_date, current_date, 'resource1', '*salt*unpossible', 'Resource 1', 'resource1@example.net' ); +INSERT INTO role_member (user_no, role_no) VALUES( 100, 4); +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 101, TRUE, current_date, current_date, 'resource2', '*salt*unpossible', 'Resource 2', 'resource2@example.net' ); +INSERT INTO role_member (user_no, role_no) VALUES( 101, 4); + +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 200, TRUE, current_date, current_date, 'resmgr1', '*salt*unpossible', 'Resource Managers', 'resource-managers@example.net' ); +INSERT INTO role_member (user_no, role_no) VALUES( 200, 2); + +INSERT INTO usr ( user_no, active, email_ok, updated, username, password, fullname, email ) + VALUES( 300, TRUE, current_date, current_date, 'teamclient1', '*salt*unpossible', 'Team for Client1', 'team-client1@example.net' ); +INSERT INTO role_member (user_no, role_no) VALUES( 300, 2); + +SELECT setval('usr_user_no_seq', 1000); +SELECT setval('dav_id_seq', 1000); + +UPDATE usr SET joined = '2009-06-01', updated = '2009-06-02'; + +INSERT INTO collection (user_no, parent_container, dav_name, dav_etag, + dav_displayname, is_calendar, created, modified, + public_events_only, publicly_readable, collection_id, resourcetypes ) + SELECT user_no, '/' || username || '/', '/' || username || '/home/', md5(username), + username || ' home', TRUE, '2009-06-03', '2009-06-04', + FALSE, FALSE, user_no + 150, '' + FROM usr ORDER BY user_no; + +INSERT INTO collection (user_no, parent_container, dav_name, dav_etag, + dav_displayname, is_calendar, is_addressbook, created, modified, + public_events_only, publicly_readable, collection_id, resourcetypes ) + SELECT user_no, '/' || username || '/', '/' || username || '/addresses/', md5(username), + username || ' addresses', FALSE, TRUE, '1957-07-26', '1998-03-16', + FALSE, FALSE, user_no + 450, '' + FROM usr ORDER BY user_no; + + +INSERT INTO principal (type_id, user_no, displayname, default_privileges) + SELECT 1, user_no, fullname, privilege_to_bits(ARRAY['read-free-busy','schedule-send','schedule-deliver']) FROM usr + WHERE NOT EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Group' AND role_member.user_no = usr.user_no) + AND NOT EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Resource' AND role_member.user_no = usr.user_no) + AND NOT EXISTS(SELECT 1 FROM principal WHERE principal.user_no = usr.user_no) ORDER BY user_no; + +INSERT INTO principal (type_id, user_no, displayname, default_privileges) + SELECT 2, user_no, fullname, privilege_to_bits(ARRAY['read','schedule-send','schedule-deliver']) FROM usr + WHERE EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Resource' AND role_member.user_no = usr.user_no) + AND NOT EXISTS(SELECT 1 FROM principal WHERE principal.user_no = usr.user_no) ORDER BY user_no; + +INSERT INTO principal (type_id, user_no, displayname, default_privileges) + SELECT 3, user_no, fullname, privilege_to_bits(ARRAY['read-free-busy','schedule-send','schedule-deliver']) FROM usr + WHERE EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Group' AND role_member.user_no = usr.user_no) + AND NOT EXISTS(SELECT 1 FROM principal WHERE principal.user_no = usr.user_no) ORDER BY user_no; + +-- Set the insert sequence to the next number, with a minimum of 1000 +SELECT setval('relationship_type_rt_id_seq', (SELECT 10 UNION SELECT rt_id FROM relationship_type ORDER BY 1 DESC LIMIT 1) ); + +-- The resources for meetings +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 200, 100, 1 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 200, 101, 1 ); + +-- The people who administer meetings +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 10, 200, 1 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 11, 200, 1 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 30, 200, 1 ); + +-- Between a PA and their Manager +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 30, 20, 2 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 30, 10, 2 ); + + +-- Between a team +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 20, 300, 3 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 10, 300, 3 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 30, 300, 3 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 300, 20, 3 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 300, 10, 3 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 300, 30, 3 ); + +-- Granting explicit free/busy permission +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 11, 10, 4 ); +INSERT INTO relationship ( from_user, to_user, rt_id ) VALUES( 10, 11, 4 ); + + +UPDATE relationship r SET confers = (SELECT bit_confers FROM relationship_type rt WHERE rt.rt_id=r.rt_id); + +INSERT INTO group_member ( group_id, member_id) + SELECT g.principal_id, m.principal_id + FROM relationship JOIN principal g ON(to_user=g.user_no AND g.type_id = 3) -- Group + JOIN principal m ON(from_user=m.user_no AND m.type_id IN (1,2)) ORDER BY 1, 2; -- Person | Resource + +INSERT INTO grants ( by_principal, to_principal, privileges, is_group ) + SELECT pby.principal_id AS by_principal, pto.principal_id AS to_principal, + confers AS privileges, pto.type_id > 2 AS is_group + FROM relationship r JOIN usr f ON(f.user_no=r.from_user) + JOIN usr t ON(t.user_no=r.to_user) + JOIN principal pby ON(t.user_no=pby.user_no) + JOIN principal pto ON(pto.user_no=f.user_no) + WHERE rt_id < 4 AND pby.type_id < 3 ORDER BY 1, 2; diff --git a/testing/tests/regression-suite/Dump-Database.result b/testing/tests/regression-suite/Dump-Database.result new file mode 100644 index 00000000..e69de29b diff --git a/testing/tests/regression-suite/Restore-Database.result b/testing/tests/regression-suite/Restore-Database.result new file mode 100644 index 00000000..e69de29b