COMP3311 24T2 Assignment 1
Testing Script
Database Systems
Last updated: Monday 17th June 12:37am
Most recent changes are shown in red ... older changes are shown in brown.

[Assignment Spec]  [Database Design]  [Examples]  [Testing]


In order to test your assignment, you need to set up the following pre-conditions:

Note that your ass1.sql file must be able to load into the database without errors.

This means that you will need to comment out any incomplete views or functions in your ass1.sql file before testing.

You then run the command:

$ 3311 autotest ass1

And if you're lucky, you see output something like this:

$ 3311 autotest ass1
./sql_create rug.schema.sql ass1.sql TRUE # ass1.sql

--- Loading Database Dump ---
CREATE TYPE
CREATE TYPE
CREATE DOMAIN
CREATE DOMAIN
CREATE DOMAIN
CREATE DOMAIN
CREATE DOMAIN
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
GRANT
GRANT
GRANT
REVOKE
REVOKE

--- Loading Student Submission ---
<Some output from your ass1.sql file>
<There should be no ERROR messages here>

./sql_clean ass1.sql
Test Dump0_Q0_Create_Database (Load the database with schema (should always succeed)) - passed
Test Dump0_Q1_Ensure_Exists (Ensure View Q1 exists, with the correct interface) - passed
Test Dump0_Q2_Ensure_Exists (Ensure View Q2 exists, with the correct interface) - passed
Test Dump0_Q3_Ensure_Exists (Ensure View Q3 exists, with the correct interface) - passed
Test Dump0_Q4_Ensure_Exists (Ensure View Q4 exists, with the correct interface) - passed
Test Dump0_Q5_Ensure_Exists (Ensure Function Q5 exists, with the correct interface) - passed
Test Dump0_Q6_Ensure_Exists (Ensure Function Q6 exists, with the correct interface) - passed
Test Dump0_Q7_Ensure_Exists (Ensure Function Q7 exists, with the correct interface) - passed
Test Dump0_Q8_Ensure_Exists (Ensure Function Q8 exists, with the correct interface) - passed
Test Dump0_Q9_Ensure_Exists (Ensure Function Q9 exists, with the correct interface) - passed
Test Dump0_Q0_Remove_Database (Remove the database (should always succeed)) - passed
Test Dump1_Q0_Create_Database (Load the database with dump (should always succeed)) - passed
Test Dump1_Q1_A (SELECT * FROM Q1 ORDER BY Province;) - passed
Test Dump1_Q2_A (SELECT * FROM Q2 ORDER BY Style;) - passed
Test Dump1_Q3_A (SELECT * FROM Q3 ORDER BY Style;) - passed
Test Dump1_Q4_A (SELECT * FROM Q4 ORDER BY Factory;) - passed
Test Dump1_Q5_A (SELECT * FROM Q5('lan') ORDER BY Rug;) - passed
Test Dump1_Q5_B (SELECT * FROM Q5('rug') ORDER BY Rug;) - passed
Test Dump1_Q5_C (SELECT * FROM Q5('[0-9]') ORDER BY Rug;) - passed
Test Dump1_Q6_A (SELECT * FROM Q6('fa') ORDER BY Province;) - passed
Test Dump1_Q6_B (SELECT * FROM Q6('an') ORDER BY Province;) - passed
Test Dump1_Q6_C (SELECT * FROM Q6('AND') ORDER BY Province;) - passed
Test Dump1_Q7_A (SELECT * FROM Q7(1);) - passed
Test Dump1_Q7_B (SELECT * FROM Q7(456);) - passed
Test Dump1_Q7_C (SELECT * FROM Q7(1327);) - passed
Test Dump1_Q7_D (SELECT * FROM Q7(891);) - passed
Test Dump1_Q8_A (SELECT * FROM Q8('zard') ORDER BY Rug;) - passed
Test Dump1_Q8_B (SELECT * FROM Q8('kani') ORDER BY Rug;) - passed
Test Dump1_Q8_C (SELECT * FROM Q8('aaa') ORDER BY Rug;) - passed
Test Dump1_Q8_D (SELECT * FROM Q8('aa') ORDER BY Rug;) - passed
Test Dump1_Q8_E (SELECT * FROM Q8('arak') ORDER BY Rug;) - passed
Test Dump1_Q9_A (SELECT * FROM Q9(1);) - passed
Test Dump1_Q9_B (SELECT * FROM Q9(11);) - passed
Test Dump1_Q9_C (SELECT * FROM Q9(111);) - passed
Test Dump1_Q9_D (SELECT * FROM Q9(188);) - passed
Test Dump1_Q9_E (SELECT * FROM Q9(118);) - passed
Test Dump1_Q9_F (SELECT * FROM Q9(36);) - passed
Test Dump1_Q9_G (SELECT * FROM Q9(26);) - passed
Test Dump1_Q0_Remove_Database (Remove the database (should always succeed)) - passed
39 tests passed 0 tests failed

You can also test individual views/functions by e.g.

$ 3311 autotest ass1 'Q0' 'Q7'
./sql_create rug.schema.sql ass1.sql TRUE # ass1.sql

--- Loading Database Dump ---
CREATE TYPE
CREATE TYPE
CREATE DOMAIN
CREATE DOMAIN
CREATE DOMAIN
CREATE DOMAIN
CREATE DOMAIN
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
GRANT
GRANT
GRANT
REVOKE
REVOKE

--- Loading Student Submission ---
<Some output from your ass1.sql file>
<There should be no ERROR messages here>

./sql_clean ass1.sql
Test Dump0_Q0_Create_Database (Load the database with schema (should always succeed)) - passed
Test Dump0_Q7_Ensure_Exists (Ensure Function Q7 exists, with the correct interface) - passed
Test Dump0_Q0_Remove_Database (Remove the database (should always succeed)) - passed
Test Dump1_Q0_Create_Database (Load the database with dump (should always succeed)) - passed
Test Dump1_Q7_A (SELECT * FROM Q7(1);) - passed
Test Dump1_Q7_B (SELECT * FROM Q7(456);) - passed
Test Dump1_Q7_C (SELECT * FROM Q7(1327);) - passed
Test Dump1_Q7_D (SELECT * FROM Q7(891);) - passed
Test Dump1_Q0_Remove_Database (Remove the database (should always succeed)) - passed
9 tests passed 0 tests failed

Note that the Q0 is always required to allow autotest to load the database dump files.

If you see could not be run because check failed when you run autotest, it means that autotest could not load your ass1.sql file into the database without errors.

The top of the autotest output shows any errors that occurred when loading your ass1.sql file into the database.