fpc/tests/utils/testsuite.sql
Michaël Van Canneyt a05f52dfed * Add CheckAllRTL
2025-03-09 15:49:18 +01:00

290 lines
10 KiB
SQL

-- Database: testsuite
-- DROP DATABASE IF EXISTS testsuite;
CREATE DATABASE testsuite
WITH
OWNER = fpc
ENCODING = 'UTF8'
LC_COLLATE = 'en_GB.UTF-8'
LC_CTYPE = 'en_GB.UTF-8'
TABLESPACE = pg_default
template = 'template0'
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
\c testsuite
CREATE SEQUENCE SEQ_TESTCATEGORY as INT start with 1;
CREATE TABLE TESTCATEGORY (
TA_ID INT NOT NULL DEFAULT nextval('SEQ_TESTCATEGORY'),
TA_NAME VARCHAR(20),
constraint PK_TESTCATEGORY PRIMARY KEY (TA_ID)
);
CREATE UNIQUE INDEX UDX_TESTCATEGORYNAME ON TESTCATEGORY(TA_NAME);
CREATE SEQUENCE SEQ_TESTCPU as INT start with 1;
CREATE TABLE TESTCPU (
TC_ID INT NOT NULL DEFAULT nextval('SEQ_TESTCPU'),
TC_NAME varchar(20),
constraint PK_TESTCPU PRIMARY KEY (TC_ID)
);
CREATE UNIQUE INDEX UDX_TESTCPU ON TESTCPU(TC_NAME);
CREATE SEQUENCE SEQ_TESTOS as INT start with 1;
CREATE TABLE TESTOS (
TO_ID INT DEFAULT nextval('SEQ_TESTOS'),
TO_NAME varchar(20),
constraint PK_TESTOS PRIMARY KEY (TO_ID)
);
CREATE UNIQUE INDEX UDX_TESTOS ON TESTOS(TO_NAME);
CREATE SEQUENCE SEQ_TESTVERSION as INT start with 1;
CREATE TABLE TESTVERSION (
TV_ID int NOT NULL default nextval('SEQ_TESTVERSION'),
TV_VERSION varchar(10),
TV_RELEASEDATE date DEFAULT CURRENT_TIMESTAMP,
constraint PK_TESTVERSION PRIMARY KEY (TV_ID)
);
CREATE UNIQUE INDEX UDX_TESTVERSION ON TESTVERSION(TV_VERSION);
CREATE SEQUENCE SEQ_TESTS as INT start with 1;
CREATE TABLE TESTS (
T_ID int NOT NULL default nextval('SEQ_TESTS'),
T_NAME varchar(127),
T_CPU varchar(127),
T_OS varchar(127),
T_VERSION varchar(10),
T_ADDDATE date NOT NULL,
T_GRAPH boolean NOT NULL default 'f',
T_INTERACTIVE boolean NOT NULL default 'f',
T_RESULT int NOT NULL default '0',
T_FAIL boolean NOT NULL default 'f',
T_RECOMPILE boolean NOT NULL default 'f',
T_NORUN boolean NOT NULL default 'f',
T_NEEDLIBRARY boolean NOT NULL default 'f',
T_KNOWNRUNERROR INT NOT NULL default 0,
T_KNOWN boolean NOT NULL default 'f',
T_NOTE varchar(255) default NULL,
T_DESCRIPTION text,
T_SOURCE text,
T_OPTS varchar(255) default '',
T_DELOPTS varchar(255) default '',
T_SKIPCPU VARCHAR(64) default '',
T_SKIPEMU VARCHAR(64) default '',
T_NEEDTARGET VARCHAR(64) default '',
T_SKIPTARGET VARCHAR(64) default '',
T_MAXVERSION VARCHAR(16) default '',
T_KNOWNRUNNOTE VARCHAR(127) default '',
T_KNOWNCOMPILENOTE VARCHAR(127) default '',
T_RECOMPILEOPT VARCHAR(127) default '',
T_KNOWNCOMPILEERROR INT DEFAULT 0,
T_NEEDEDAFTER boolean default 'f',
T_ISKNOWNRUNERROR Boolean default 'f',
T_Timeout INT DEFAULT 0,
T_CATEGORY VARCHAR(127) default '',
T_FILES VARCHAR(127) default '',
T_CONFIGFILESRC VARCHAR(127) default '',
T_CONFIGFILEDST VARCHAR(127) default '',
T_WPOPARAS VARCHAR(127) default '',
T_WPOPASSES INT DEFAULT 0,
T_DELFILES VARCHAR(127) default '',
T_EXPECTMSGS VARCHAR(127) default '',
constraint PK_TESTS PRIMARY KEY (T_ID)
);
CREATE UNIQUE INDEX UDX_TESTS ON TESTS(T_NAME);
CREATE SEQUENCE SEQ_TESTPLATFORM as INT start with 1;
CREATE TABLE TESTPLATFORM (
TP_ID INT NOT NULL default nextval('SEQ_TESTPLATFORM'),
TP_CPU_FK INT NOT NULL,
TP_OS_FK INT NOT NULL,
TP_VERSION_FK INT NOT NULL,
TP_CATEGORY_FK int NOT NULL,
TP_CONFIG VARCHAR(255) NOT NULL,
TP_MACHINE VARCHAR(64) NOT NULL,
constraint PK_TESTPLATFORM PRIMARY KEY (TP_ID)
);
CREATE UNIQUE INDEX UDX_TESTPLATFORM ON TESTPLATFORM(TP_CPU_FK,TP_OS_FK,TP_VERSION_FK,TP_CATEGORY_FK,TP_CONFIG,TP_MACHINE);
CREATE INDEX IDX_TESTPLATFORMRELATIONS ON TESTPLATFORM(TP_CPU_FK,TP_OS_FK,TP_VERSION_FK,TP_CATEGORY_FK);
CREATE SEQUENCE SEQ_TESTRUN as BIGINT start with 1;
CREATE TABLE TESTRUN (
TU_ID bigint NOT NULL default nextval('SEQ_TESTRUN'),
TU_DATE DATE NOT NULL default CURRENT_DATE,
TU_PLATFORM_FK int NOT NULL,
TU_COMPILERDATE VARCHAR(15),
TU_COMPILERFULLVERSION VARCHAR(50),
TU_COMPILERREVISION VARCHAR(50),
TU_TESTSREVISION VARCHAR(50),
TU_RTLREVISION VARCHAR(50),
TU_PACKAGESREVISION VARCHAR(50),
TU_SUBMITTER varchar(128) NOT NULL default '',
TU_FAILEDTOCOMPILE int NOT NULL default 0,
TU_SUCCESSFULLYFAILED int NOT NULL default 0,
TU_FAILEDTOFAIL int NOT NULL default 0,
TU_SUCCESFULLYCOMPILED int NOT NULL default 0,
TU_FAILEDTORUN int NOT NULL default 0,
TU_KNOWNPROBLEM int NOT NULL default 0,
TU_SUCCESSFULLYRUN int NOT NULL default 0,
TU_SKIPPEDGRAPHTEST int NOT NULL default 0,
TU_SKIPPEDINTERACTIVETEST int NOT NULL default 0,
TU_KNOWNBUG int NOT NULL default 0,
TU_COMPILERVERIONTOOLOW int NOT NULL default 0,
TU_COMPILERVERIONTOOHIGH int NOT NULL default 0,
TU_OTHERCPU int NOT NULL default 0,
TU_OTHERTARGET int NOT NULL default 0,
TU_UNIT int NOT NULL default 0,
TU_SKIPPINGRUNTEST int NOT NULL default 0,
CONSTRAINT PK_TESTRUN PRIMARY KEY (TU_ID)
);
CREATE UNIQUE INDEX UDX_TESTRUN ON TESTRUN(TU_DATE,TU_PLATFORM_FK);
CREATE INDEX IDX_TESTRUNPLATFORM ON TESTRUN(TU_PLATFORM_FK,TU_DATE);
CREATE SEQUENCE SEQ_TESTRESULTS as BIGINT start with 1;
CREATE TABLE TESTRESULTS (
TR_ID bigint NOT NULL default nextval('SEQ_TESTRESULTS'),
TR_TESTRUN_FK bigint NOT NULL default 0,
TR_TEST_FK int not NULL,
TR_OK Boolean NOT NULL default 'f',
TR_SKIP boolean NOT NULL default 'f',
TR_RESULT int NOT NULL default 0,
TR_LOG text,
constraint PK_TESTRESULTS PRIMARY KEY (TR_ID)
);
CREATE UNIQUE INDEX UDX_TESTRESULTS ON TESTRESULTS (TR_TESTRUN_FK,TR_TEST_FK);
CREATE TABLE TESTLASTRESULTS (
TL_TEST_FK int not NULL,
TL_PLATFORM_FK int not NULL,
TL_TESTRESULTS_FK bigint NOT NULL
);
CREATE UNIQUE INDEX UDX_TESTLASTRESULTS ON TESTLASTRESULTS(TL_PLATFORM_FK,TL_TEST_FK);
CREATE TABLE TESTPREVIOUSRESULTS (
TPR_TEST_FK int not NULL,
TPR_PLATFORM_FK int not NULL,
TPR_TESTRESULTS_FK bigint NOT NULL
);
CREATE UNIQUE INDEX UDX_TESTPREVIOUSRESULTS ON TESTPREVIOUSRESULTS(TPR_PLATFORM_FK,TPR_TEST_FK);
CREATE TABLE TESTRUNHISTORY (
TH_ID_FK BIGINT,
TH_PREVIOUS_FK BIGINT,
CONSTRAINT PK_TESTRUNHISTORY PRIMARY KEY (TH_ID_FK)
);
CREATE INDEX IDX_PREVIOUS ON TESTRUNHISTORY(TH_PREVIOUS_FK);
create sequence seqCheckAll;
create table CHECKALLRTL (
CA_ID BIGINT NOT NULL default nextval('seqCheckAll'),
CA_PLATFORM_FK INT NOT NULL,
CA_DATE DATE NOT NULL DEFAULT CURRENT_DATE,
CA_STEP1 BOOLEAN NOT NULL DEFAULT 't',
CA_STEP2 BOOLEAN NOT NULL DEFAULT 't',
CA_STEP3 BOOLEAN NOT NULL DEFAULT 't',
CA_STEP4 BOOLEAN NOT NULL DEFAULT 't',
CA_STEP5 BOOLEAN NOT NULL DEFAULT 't',
CA_STEP6 BOOLEAN NOT NULL DEFAULT 't',
CONSTRAINT PK_CHECKALLRTL PRIMARY KEY (CA_ID)
);
create sequence seqCheckAllLog;
create table CHECKALLRTLLOG (
CAL_ID BIGINT NOT NULL default nextval('seqCheckAllLog'),
CAL_CHECKALLRTL_FK BIGINT NOT NULL,
CAL_STEP SMALLINT NOT NULL,
CAL_LOG text,
CONSTRAINT PK_PK_CHECKALLRTLLOG PRIMARY KEY (CAL_ID)
);
CREATE UNIQUE INDEX UDX_CHECKALLRTLLOG ON CHECKALLRTLLOG(CAL_CHECKALLRTL_FK,CAL_STEP);
-- Create relations
ALTER TABLE testplatform ADD CONSTRAINT fk_plaform_os FOREIGN KEY (tp_os_fk) REFERENCES testos (to_id);
ALTER TABLE testplatform ADD CONSTRAINT fk_plaform_cpu FOREIGN KEY (tp_cpu_fk) REFERENCES testcpu (tc_id);
ALTER TABLE testplatform ADD CONSTRAINT fk_plaform_version FOREIGN KEY (tp_version_fk) REFERENCES testversion (tv_id);
ALTER TABLE testplatform ADD CONSTRAINT fk_plaform_category FOREIGN KEY (tp_category_fk) REFERENCES testcategory (ta_id);
ALTER TABLE testrun ADD CONSTRAINT fk_run_platform FOREIGN KEY (tu_platform_fk) REFERENCES testplatform (tp_id);
ALTER TABLE testresults ADD CONSTRAINT fk_results_run FOREIGN KEY (tr_testrun_fk) REFERENCES testrun (tu_id);
ALTER TABLE testresults ADD CONSTRAINT fk_results_test FOREIGN KEY (tr_test_fk) REFERENCES tests (t_id);
ALTER TABLE CHECKALLRTL ADD CONSTRAINT CHECKALLRTL_PLATFORM_FK FOREIGN KEY (CA_PLATFORM_FK) references testplatform (TP_ID);
ALTER TABLE CHECKALLRTLLOG ADD CONSTRAINT CHECKALLRTLLOG_CHECKALLRTL_FK FOREIGN KEY (CAL_CHECKALLRTL_FK) REFERENCES CHECKALLRTL (CA_ID);
-- Insert default data
INSERT INTO TESTCATEGORY VALUES (1, 'Compiler/RTL');
INSERT INTO TESTCATEGORY VALUES (2, 'DB');
ALTER SEQUENCE SEQ_TESTCATEGORY RESTART WITH 3;
INSERT INTO TESTCPU VALUES (1, 'i386');
INSERT INTO TESTCPU VALUES (6, 'arm');
INSERT INTO TESTCPU VALUES (3, 'm68k');
INSERT INTO TESTCPU VALUES (4, 'sparc');
INSERT INTO TESTCPU VALUES (5, 'powerpc');
INSERT INTO TESTCPU VALUES (7, 'x86_64');
INSERT INTO TESTCPU VALUES (8, 'All');
INSERT INTO TESTCPU VALUES (9, 'powerpc64');
INSERT INTO TESTCPU VALUES (10, 'wasm32');
INSERT INTO TESTCPU VALUES (11, 'longsoon');
INSERT INTO TESTCPU VALUES (12, 'longsoon64');
INSERT INTO TESTCPU VALUES (13, 'mips');
INSERT INTO TESTCPU VALUES (14, 'mips64');
INSERT INTO TESTCPU VALUES (15, 'avr');
INSERT INTO TESTCPU VALUES (16, 'xtensa');
ALTER SEQUENCE SEQ_TESTCPU RESTART WITH 17;
INSERT INTO TESTOS VALUES (1, 'linux');
INSERT INTO TESTOS VALUES (2, 'win32');
INSERT INTO TESTOS VALUES (3, 'go32v2');
INSERT INTO TESTOS VALUES (4, 'os2');
INSERT INTO TESTOS VALUES (5, 'freebsd');
INSERT INTO TESTOS VALUES (6, 'netbsd');
INSERT INTO TESTOS VALUES (7, 'openbsd');
INSERT INTO TESTOS VALUES (8, 'amiga');
INSERT INTO TESTOS VALUES (9, 'atari');
INSERT INTO TESTOS VALUES (10, 'qnx');
INSERT INTO TESTOS VALUES (11, 'beos');
INSERT INTO TESTOS VALUES (12, 'solaris');
INSERT INTO TESTOS VALUES (13, 'darwin');
INSERT INTO TESTOS VALUES (14, 'macos');
INSERT INTO TESTOS VALUES (15, 'All');
INSERT INTO TESTOS VALUES (16, 'win64');
INSERT INTO TESTOS VALUES (17, 'wince');
INSERT INTO TESTOS VALUES (18, 'wasi');
ALTER SEQUENCE SEQ_TESTOS RESTART WITH 19;
INSERT INTO TESTVERSION VALUES (1, '2.0.4', '2006-08-22 22:38:20');
INSERT INTO TESTVERSION VALUES (2, '2.0.5', '2006-08-22 22:38:20');
INSERT INTO TESTVERSION VALUES (3, '2.3.1', '2007-03-04 23:40:07');
INSERT INTO TESTVERSION VALUES (4, '2.1.2', '2007-03-19 10:49:30');
INSERT INTO TESTVERSION VALUES (5, '2.1.3', '2007-03-19 10:49:47');
INSERT INTO TESTVERSION VALUES (6, '2.1.4', '2007-03-19 10:50:03');
INSERT INTO TESTVERSION VALUES (7, '3.2.2', '2020-04-01 10:50:03');
INSERT INTO TESTVERSION VALUES (8, '3.3.1', '2020-04-01 10:50:03');
ALTER SEQUENCE SEQ_TESTVERSION RESTART WITH 9;