VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/testmanager/db/TestManagerDatabaseComments.pgsql@ 56295

最後變更 在這個檔案從56295是 52776,由 vboxsync 提交於 10 年 前

fix OSE

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 38.9 KB
 
1COMMENT ON COLUMN SystemLog.tsCreated IS
2 'When this was logged.';
3
4
5COMMENT ON COLUMN SystemLog.sEvent IS
6 'The event type.
7This is a 8 character string identifier so that we don''t need to change
8some enum type everytime we introduce a new event type.';
9
10
11COMMENT ON COLUMN SystemLog.sLogText IS
12 'The log text.';
13
14
15COMMENT ON TABLE Users IS
16 'Test manager users.
17
18This is mainly for doing simple access checks before permitting access to
19the test manager. This needs to be coordinated with
20apache/ldap/Oracle-Single-Sign-On.
21
22The main purpose, though, is for tracing who changed the test config and
23analysis data.
24
25@remarks This table stores history. Never update or delete anything. The
26 equivalent of deleting is done by setting the ''tsExpire'' field to
27 current_timestamp.';
28
29
30COMMENT ON COLUMN Users.tsEffective IS
31 'When this row starts taking effect (inclusive).';
32
33
34COMMENT ON COLUMN Users.tsExpire IS
35 'When this row stops being tsEffective (exclusive).';
36
37
38COMMENT ON COLUMN Users.uidAuthor IS
39 'The user id of the one who created/modified this entry.
40Non-unique foreign key: Users(uid)';
41
42
43COMMENT ON COLUMN Users.sUsername IS
44 'User name.';
45
46
47COMMENT ON COLUMN Users.sEmail IS
48 'The email address of the user.';
49
50
51COMMENT ON COLUMN Users.sFullName IS
52 'The full name.';
53
54
55COMMENT ON COLUMN Users.sLoginName IS
56 'The login name used by apache.';
57
58
59COMMENT ON TABLE GlobalResources IS
60 'Global resource configuration.
61
62For example an iSCSI target.
63
64@remarks This table stores history. Never update or delete anything. The
65 equivalent of deleting is done by setting the ''tsExpire'' field to
66 current_timestamp.';
67
68
69COMMENT ON COLUMN GlobalResources.tsEffective IS
70 'When this row starts taking effect (inclusive).';
71
72
73COMMENT ON COLUMN GlobalResources.tsExpire IS
74 'When this row stops being tsEffective (exclusive).';
75
76
77COMMENT ON COLUMN GlobalResources.uidAuthor IS
78 'The user id of the one who created/modified this entry.
79Non-unique foreign key: Users(uid)';
80
81
82COMMENT ON COLUMN GlobalResources.sName IS
83 'The name of the resource.';
84
85
86COMMENT ON COLUMN GlobalResources.sDescription IS
87 'Optional resource description.';
88
89
90COMMENT ON COLUMN GlobalResources.fEnabled IS
91 'Indicates whether this resource is currently enabled (online).';
92
93
94COMMENT ON TABLE BuildSources IS
95 'Build sources.
96
97This is used by a scheduling group to select builds and the default
98Validation Kit from the Builds table.
99
100@remarks This table stores history. Never update or delete anything. The
101 equivalent of deleting is done by setting the ''tsExpire'' field to
102 current_timestamp.
103
104@todo Any better way of representing this so we could more easily
105 join/whatever when searching for builds?';
106
107
108COMMENT ON COLUMN BuildSources.tsEffective IS
109 'When this row starts taking effect (inclusive).';
110
111
112COMMENT ON COLUMN BuildSources.tsExpire IS
113 'When this row stops being tsEffective (exclusive).';
114
115
116COMMENT ON COLUMN BuildSources.uidAuthor IS
117 'The user id of the one who created/modified this entry.
118Non-unique foreign key: Users(uid)';
119
120
121COMMENT ON COLUMN BuildSources.sName IS
122 'The name of the build source.';
123
124
125COMMENT ON COLUMN BuildSources.sDescription IS
126 'Description.';
127
128
129COMMENT ON COLUMN BuildSources.sProduct IS
130 'Which product.
131ASSUME that it is okay to limit a build source to a single product.';
132
133
134COMMENT ON COLUMN BuildSources.sBranch IS
135 'Which branch.
136ASSUME that it is okay to limit a build source to a branch.';
137
138
139COMMENT ON COLUMN BuildSources.asTypes IS
140 'Build types to include, all matches if NULL.
141@todo Weighting the types would be nice in a later version.';
142
143
144COMMENT ON COLUMN BuildSources.asOsArches IS
145 'Array of the ''sOs.sCpuArch'' to match, all matches if NULL.
146See KBUILD_OSES in kBuild for a list of standard target OSes, and
147KBUILD_ARCHES for a list of standard architectures.
148
149@remarks See marks on ''os-agnostic'' and ''noarch'' in BuildCategories.';
150
151
152COMMENT ON COLUMN BuildSources.iFirstRevision IS
153 'The first subversion tree revision to match, no lower limit if NULL.';
154
155
156COMMENT ON COLUMN BuildSources.iLastRevision IS
157 'The last subversion tree revision to match, no upper limit if NULL.';
158
159
160COMMENT ON TABLE TestCases IS
161 'Test case configuration.
162
163@remarks This table stores history. Never update or delete anything. The
164 equivalent of deleting is done by setting the ''tsExpire'' field to
165 current_timestamp.';
166
167
168COMMENT ON COLUMN TestCases.tsEffective IS
169 'When this row starts taking effect (inclusive).';
170
171
172COMMENT ON COLUMN TestCases.tsExpire IS
173 'When this row stops being tsEffective (exclusive).';
174
175
176COMMENT ON COLUMN TestCases.uidAuthor IS
177 'The user id of the one who created/modified this entry.
178Non-unique foreign key: Users(uid)';
179
180
181COMMENT ON COLUMN TestCases.sName IS
182 'The name of the test case.';
183
184
185COMMENT ON COLUMN TestCases.sDescription IS
186 'Optional test case description.';
187
188
189COMMENT ON COLUMN TestCases.fEnabled IS
190 'Indicates whether this test case is currently enabled.';
191
192
193COMMENT ON COLUMN TestCases.cSecTimeout IS
194 'Default test case timeout given in seconds.';
195
196
197COMMENT ON COLUMN TestCases.sTestBoxReqExpr IS
198 'Default TestBox requirement expression (python boolean expression).
199All the scheduler properties are available for use with the same names
200as in that table.
201If NULL everything matches.';
202
203
204COMMENT ON COLUMN TestCases.sBuildReqExpr IS
205 'Default build requirement expression (python boolean expression).
206The following build properties are available: sProduct, sBranch,
207sType, asOsArches, sVersion, iRevision, uidAuthor and idBuild.
208If NULL everything matches.';
209
210
211COMMENT ON COLUMN TestCases.sBaseCmd IS
212 'The base command.
213String suitable for executing in bourne shell with space as separator
214(IFS). References to @BUILD_BINARIES@ will be replaced WITH the content
215of the Builds(sBinaries) field.';
216
217
218COMMENT ON COLUMN TestCases.sTestSuiteZips IS
219 'Comma separated list of test suite zips (or tars) that the testbox will
220need to download and expand prior to testing.
221If NULL the current test suite of the scheduling group will be used (the
222scheduling group will have an optional test suite build queue associated
223with it). The current test suite can also be referenced by
224@VALIDATIONKIT_ZIP@ in case more downloads are required. Files may also be
225uploaded to the test manager download area, in which case the
226@DOWNLOAD_BASE_URL@ prefix can be used to refer to this area.';
227
228
229COMMENT ON TABLE TestCaseArgs IS
230 'Test case argument list variations.
231
232For example, we have a test case that does a set of tests on a virtual
233machine. To get better code/feature coverage of this testcase we wish to
234run it with different guest hardware configuration. The test case may do
235the same stuff, but the guest OS as well as the VMM may react differently to
236the hardware configurations and uncover issues in the VMM, device emulation
237or other places.
238
239Typical hardware variations are:
240 - guest memory size (RAM),
241 - guest video memory size (VRAM),
242 - virtual CPUs / cores / threads,
243 - virtual chipset
244 - virtual network interface card (NIC)
245 - USB 1.1, USB 2.0, no USB
246
247The TM web UI will help the user create a reasonable set of permutations
248of these parameters, the user specifies a maximum and the TM uses certain
249rules together with random selection to generate the desired number. The
250UI will also help suggest fitting testbox requirements according to the
251RAM/VRAM sizes and the virtual CPU counts. The user may then make
252adjustments to the suggestions before commit them.
253
254Alternatively, the user may also enter all the permutations without any
255help from the UI.
256
257Note! All test cases has at least one entry in this table, even if it is
258empty, because testbox requirements are specified thru this.
259
260Querying the valid parameter lists for a testase this way:
261 SELECT * ... WHERE idTestCase = TestCases.idTestCase
262 AND tsExpire > <when>
263 AND tsEffective <= <when>;
264
265Querying the valid parameter list for the latest generation can be
266simplified by just checking tsExpire date:
267 SELECT * ... WHERE idTestCase = TestCases.idTestCase
268 AND tsExpire == TIMESTAMP WITH TIME ZONE ''infinity'';
269
270@remarks This table stores history. Never update or delete anything. The
271 equivalent of deleting is done by setting the ''tsExpire'' field to
272 current_timestamp.';
273
274
275COMMENT ON COLUMN TestCaseArgs.tsEffective IS
276 'When this row starts taking effect (inclusive).';
277
278
279COMMENT ON COLUMN TestCaseArgs.tsExpire IS
280 'When this row stops being tsEffective (exclusive).';
281
282
283COMMENT ON COLUMN TestCaseArgs.uidAuthor IS
284 'The user id of the one who created/modified this entry.
285Non-unique foreign key: Users(uid)';
286
287
288COMMENT ON COLUMN TestCaseArgs.sArgs IS
289 'The additional arguments.
290String suitable for bourne shell style argument parsing with space as
291separator (IFS). References to @BUILD_BINARIES@ will be replaced with
292the content of the Builds(sBinaries) field.';
293
294
295COMMENT ON COLUMN TestCaseArgs.cSecTimeout IS
296 'Optional test case timeout given in seconds.
297If NULL, the TestCases.cSecTimeout field is used instead.';
298
299
300COMMENT ON COLUMN TestCaseArgs.sTestBoxReqExpr IS
301 'Additional TestBox requirement expression (python boolean expression).
302All the scheduler properties are available for use with the same names
303as in that table. This is checked after first checking the requirements
304in the TestCases.sTestBoxReqExpr field.';
305
306
307COMMENT ON COLUMN TestCaseArgs.sBuildReqExpr IS
308 'Additional build requirement expression (python boolean expression).
309The following build properties are available: sProduct, sBranch,
310sType, asOsArches, sVersion, iRevision, uidAuthor and idBuild. This is
311checked after first checking the requirements in the
312TestCases.sBuildReqExpr field.';
313
314
315COMMENT ON COLUMN TestCaseArgs.cGangMembers IS
316 'Number of testboxes required (gang scheduling).';
317
318
319COMMENT ON INDEX TestCaseArgsLookupIdx IS
320 'The arguments are part of the primary key for several reasons.
321No duplicate argument lists (makes no sense - if you want to prioritize
322argument lists, we add that explicitly). This may hopefully enable us
323to more easily check coverage later on, even when the test case is
324reconfigured with more/less permutations.';
325
326
327COMMENT ON TABLE TestCaseDeps IS
328 'Test case dependencies (N:M)
329
330This effect build selection. The build must have passed all runs of the
331given prerequisite testcase (idTestCasePreReq) and executed at a minimum one
332argument list variation.
333
334This should also affect scheduling order, if possible at least one
335prerequisite testcase variation should be place before the specific testcase
336in the scheduling queue.
337
338@remarks This table stores history. Never update or delete anything. The
339 equivalent of deleting is done by setting the ''tsExpire'' field to
340 current_timestamp. To select the currently valid entries use
341 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
342
343
344COMMENT ON COLUMN TestCaseDeps.tsEffective IS
345 'When this row starts taking effect (inclusive).';
346
347
348COMMENT ON COLUMN TestCaseDeps.tsExpire IS
349 'When this row stops being tsEffective (exclusive).';
350
351
352COMMENT ON COLUMN TestCaseDeps.uidAuthor IS
353 'The user id of the one who created/modified this entry.
354Non-unique foreign key: Users(uid)';
355
356
357COMMENT ON TABLE TestCaseGlobalRsrcDeps IS
358 'Test case dependencies on global resources (N:M)
359
360@remarks This table stores history. Never update or delete anything. The
361 equivalent of deleting is done by setting the ''tsExpire'' field to
362 current_timestamp. To select the currently valid entries use
363 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
364
365
366COMMENT ON COLUMN TestCaseGlobalRsrcDeps.tsEffective IS
367 'When this row starts taking effect (inclusive).';
368
369
370COMMENT ON COLUMN TestCaseGlobalRsrcDeps.tsExpire IS
371 'When this row stops being tsEffective (exclusive).';
372
373
374COMMENT ON COLUMN TestCaseGlobalRsrcDeps.uidAuthor IS
375 'The user id of the one who created/modified this entry.
376Non-unique foreign key: Users(uid)';
377
378
379COMMENT ON TABLE TestGroups IS
380 'Test Group - A collection of test cases.
381
382This is for simplifying test configuration by working with a few groups
383instead of a herd of individual testcases. It may also be used for creating
384test suites for certain areas (like guest additions) or tasks (like
385performance measurements).
386
387A test case can be member of any number of test groups.
388
389@remarks This table stores history. Never update or delete anything. The
390 equivalent of deleting is done by setting the ''tsExpire'' field to
391 current_timestamp. To select the currently valid entries use
392 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
393
394
395COMMENT ON COLUMN TestGroups.tsEffective IS
396 'When this row starts taking effect (inclusive).';
397
398
399COMMENT ON COLUMN TestGroups.tsExpire IS
400 'When this row stops being tsEffective (exclusive).';
401
402
403COMMENT ON COLUMN TestGroups.uidAuthor IS
404 'The user id of the one who created/modified this entry.
405Non-unique foreign key: Users(uid)';
406
407
408COMMENT ON COLUMN TestGroups.sName IS
409 'The name of the scheduling group.';
410
411
412COMMENT ON COLUMN TestGroups.sDescription IS
413 'Optional group description.';
414
415
416COMMENT ON TABLE TestGroupMembers IS
417 'The N:M relation ship between test case configurations and test groups.
418
419@remarks This table stores history. Never update or delete anything. The
420 equivalent of deleting is done by setting the ''tsExpire'' field to
421 current_timestamp. To select the currently valid entries use
422 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
423
424
425COMMENT ON COLUMN TestGroupMembers.tsEffective IS
426 'When this row starts taking effect (inclusive).';
427
428
429COMMENT ON COLUMN TestGroupMembers.tsExpire IS
430 'When this row stops being tsEffective (exclusive).';
431
432
433COMMENT ON COLUMN TestGroupMembers.uidAuthor IS
434 'The user id of the one who created/modified this entry.
435Non-unique foreign key: Users(uid)';
436
437
438COMMENT ON COLUMN TestGroupMembers.iSchedPriority IS
439 'Test case scheduling priority.
440Higher number causes the test case to be run more frequently.
441@sa SchedGroupMembers.iSchedPriority
442@todo Not sure we want to keep this...';
443
444
445COMMENT ON TABLE SchedGroups IS
446 'Scheduling group (aka. testbox partitioning) configuration.
447
448A testbox is associated with exactly one scheduling group. This association
449can be changed, of course. If we (want to) retire a group which still has
450testboxes associated with it, these will be moved to the ''default'' group.
451
452The TM web UI will make sure that a testbox is always in a group and that
453the default group cannot be deleted.
454
455A scheduling group combines several things:
456 - A selection of builds to test (via idBuildSrc).
457 - A collection of test groups to test with (via SchedGroupMembers).
458 - A set of testboxes to test on (via TestBoxes.idSchedGroup).
459
460In additions there is an optional source of fresh test suite builds (think
461VBoxTestSuite) as well as scheduling options.
462
463@remarks This table stores history. Never update or delete anything. The
464 equivalent of deleting is done by setting the ''tsExpire'' field to
465 current_timestamp. To select the currently valid entries use
466 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
467
468
469COMMENT ON COLUMN SchedGroups.tsEffective IS
470 'When this row starts taking effect (inclusive).';
471
472
473COMMENT ON COLUMN SchedGroups.tsExpire IS
474 'When this row stops being tsEffective (exclusive).';
475
476
477COMMENT ON COLUMN SchedGroups.uidAuthor IS
478 'The user id of the one who created/modified this entry.
479Non-unique foreign key: Users(uid)
480@note This is NULL for the default group.';
481
482
483COMMENT ON COLUMN SchedGroups.sName IS
484 'The name of the scheduling group.';
485
486
487COMMENT ON COLUMN SchedGroups.sDescription IS
488 'Optional group description.';
489
490
491COMMENT ON COLUMN SchedGroups.fEnabled IS
492 'Indicates whether this group is currently enabled.';
493
494
495COMMENT ON COLUMN SchedGroups.enmScheduler IS
496 'The scheduler to use.
497This is for when we later desire different scheduling that the best
498effort stuff provided by the initial implementation.';
499
500
501COMMENT ON TABLE SchedGroupMembers IS
502 'N:M relationship between scheduling groups and test groups.
503
504Several scheduling parameters are associated with this relationship.
505
506The test group dependency (idTestGroupPreReq) can be used in the same way as
507TestCaseDeps.idTestCasePreReq, only here on test group level. This means it
508affects the build selection. The builds needs to have passed all test runs
509the prerequisite test group and done at least one argument variation of each
510test case in it.
511
512@remarks This table stores history. Never update or delete anything. The
513 equivalent of deleting is done by setting the ''tsExpire'' field to
514 current_timestamp. To select the currently valid entries use
515 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
516
517
518COMMENT ON COLUMN SchedGroupMembers.tsEffective IS
519 'When this row starts taking effect (inclusive).';
520
521
522COMMENT ON COLUMN SchedGroupMembers.tsExpire IS
523 'When this row stops being tsEffective (exclusive).';
524
525
526COMMENT ON COLUMN SchedGroupMembers.uidAuthor IS
527 'The user id of the one who created/modified this entry.
528Non-unique foreign key: Users(uid)';
529
530
531COMMENT ON COLUMN SchedGroupMembers.iSchedPriority IS
532 'The scheduling priority if the test group.
533Higher number causes the test case to be run more frequently.
534@sa TestGroupMembers.iSchedPriority';
535
536
537COMMENT ON COLUMN SchedGroupMembers.bmHourlySchedule IS
538 'When during the week this group is allowed to start running, NULL means
539there are no constraints.
540Each bit in the bitstring represents one hour, with bit 0 indicating the
541midnight hour on a monday.';
542
543
544COMMENT ON TYPE TestBoxCmd_T IS
545 'Testbox commands.';
546
547
548COMMENT ON TYPE LomKind_T IS
549 'The kind of lights out management on a testbox.';
550
551
552COMMENT ON TABLE TestBoxes IS
553 'Testbox configurations.
554
555The testboxes are identified by IP and the system UUID if available. Should
556the IP change, the testbox will be refused at sign on and the testbox
557sheriff will have to update it''s IP.
558
559@todo Implement the UUID stuff. Get it from DMI, UEFI or whereever.
560 Mismatching needs to be logged somewhere...
561
562To query the currently valid configuration:
563 SELECT ... WHERE id = idTestBox AND tsExpire = TIMESTAMP WITH TIME ZONE ''infinity'';
564
565@remarks This table stores history. Never update or delete anything. The
566 equivalent of deleting is done by setting the ''tsExpire'' field to
567 current_timestamp. To select the currently valid entries use
568 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
569
570
571COMMENT ON COLUMN TestBoxes.tsEffective IS
572 'When this row starts taking effect (inclusive).';
573
574
575COMMENT ON COLUMN TestBoxes.tsExpire IS
576 'When this row stops being tsEffective (exclusive).';
577
578
579COMMENT ON COLUMN TestBoxes.uidAuthor IS
580 'The user id of the one who created/modified this entry.
581When modified automatically by the testbox, NULL is used.
582Non-unique foreign key: Users(uid)';
583
584
585COMMENT ON COLUMN TestBoxes.uuidSystem IS
586 'The system or firmware UUID.
587This uniquely identifies the testbox when talking to the server. After
588SIGNON though, the testbox will also provide idTestBox and ip to
589establish its identity beyond doubt.';
590
591
592COMMENT ON COLUMN TestBoxes.sName IS
593 'The testbox name.
594Usually similar to the DNS name.';
595
596
597COMMENT ON COLUMN TestBoxes.sDescription IS
598 'Optional testbox description.
599Intended for describing the box as well as making other relevant notes.';
600
601
602COMMENT ON COLUMN TestBoxes.fEnabled IS
603 'Indicates whether this testbox is enabled.
604A testbox gets disabled when we''re doing maintenance, debugging a issue
605that happens only on that testbox, or some similar stuff. This is an
606alternative to deleting the testbox.';
607
608
609COMMENT ON COLUMN TestBoxes.enmLomKind IS
610 'The kind of lights-out-management.';
611
612
613COMMENT ON COLUMN TestBoxes.sOs IS
614 'Same abbrieviations as kBuild, see KBUILD_OSES.';
615
616
617COMMENT ON COLUMN TestBoxes.sOsVersion IS
618 'Informational, no fixed format.';
619
620
621COMMENT ON COLUMN TestBoxes.sCpuVendor IS
622 'Same as CPUID reports (GenuineIntel, AuthenticAMD, CentaurHauls, ...).';
623
624
625COMMENT ON COLUMN TestBoxes.sCpuArch IS
626 'Same as kBuild - x86, amd64, ... See KBUILD_ARCHES.';
627
628
629COMMENT ON COLUMN TestBoxes.cCpus IS
630 'Number of CPUs, CPU cores and CPU threads.';
631
632
633COMMENT ON COLUMN TestBoxes.fCpuHwVirt IS
634 'Set if capable of hardware virtualization.';
635
636
637COMMENT ON COLUMN TestBoxes.fCpuNestedPaging IS
638 'Set if capable of nested paging.';
639
640
641COMMENT ON COLUMN TestBoxes.fCpu64BitGuest IS
642 'Set if CPU capable of 64-bit (VBox) guests.';
643
644
645COMMENT ON COLUMN TestBoxes.fChipsetIoMmu IS
646 'Set if chipset with usable IOMMU (VT-d / AMD-Vi).';
647
648
649COMMENT ON COLUMN TestBoxes.cMbMemory IS
650 'The (approximate) memory size in megabytes (rounded down to nearest 4 MB).';
651
652
653COMMENT ON COLUMN TestBoxes.cMbScratch IS
654 'The amount of scratch space in megabytes (rounded down to nearest 64 MB).';
655
656
657COMMENT ON COLUMN TestBoxes.iTestBoxScriptRev IS
658 'The testbox script revision number, serves the purpose of a version number.
659Probably good to have when scheduling upgrades as well for status purposes.';
660
661
662COMMENT ON COLUMN TestBoxes.iPythonHexVersion IS
663 'The python sys.hexversion (layed out as of 2.7).
664Good to know which python versions we need to support.';
665
666
667COMMENT ON COLUMN TestBoxes.enmPendingCmd IS
668 'Pending command.
669@note We put it here instead of in TestBoxStatuses to get history.';
670
671
672COMMENT ON INDEX TestBoxesUuidIdx IS
673 'Nested paging requires hardware virtualization.';
674
675
676COMMENT ON TABLE FailureCategories IS
677 'Failure categories.
678
679This is for organizing the failure reasons.
680
681@remarks This table stores history. Never update or delete anything. The
682 equivalent of deleting is done by setting the ''tsExpire'' field to
683 current_timestamp. To select the currently valid entries use
684 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
685
686
687COMMENT ON COLUMN FailureCategories.tsEffective IS
688 'When this row starts taking effect (inclusive).';
689
690
691COMMENT ON COLUMN FailureCategories.tsExpire IS
692 'When this row stops being tsEffective (exclusive).';
693
694
695COMMENT ON COLUMN FailureCategories.uidAuthor IS
696 'The user id of the one who created/modified this entry.
697Non-unique foreign key: Users(uid)';
698
699
700COMMENT ON COLUMN FailureCategories.sShort IS
701 'The short category description.
702For combo boxes and other selection lists.';
703
704
705COMMENT ON COLUMN FailureCategories.sFull IS
706 'Full description
707For cursor-over-poppups for instance.';
708
709
710COMMENT ON TABLE FailureReasons IS
711 'Failure reasons.
712
713When analysing a test failure, the testbox sheriff will try assign a fitting
714reason for the failure. This table is here to help the sheriff in his/hers
715job as well as developers looking checking if their changes affected the
716test results in any way.
717
718@remarks This table stores history. Never update or delete anything. The
719 equivalent of deleting is done by setting the ''tsExpire'' field to
720 current_timestamp. To select the currently valid entries use
721 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
722
723
724COMMENT ON COLUMN FailureReasons.tsEffective IS
725 'When this row starts taking effect (inclusive).';
726
727
728COMMENT ON COLUMN FailureReasons.tsExpire IS
729 'When this row stops being tsEffective (exclusive).';
730
731
732COMMENT ON COLUMN FailureReasons.uidAuthor IS
733 'The user id of the one who created/modified this entry.
734Non-unique foreign key: Users(uid)';
735
736
737COMMENT ON COLUMN FailureReasons.sShort IS
738 'The short failure description.
739For combo boxes and other selection lists.';
740
741
742COMMENT ON COLUMN FailureReasons.sFull IS
743 'Full failure description.';
744
745
746COMMENT ON COLUMN FailureReasons.iTicket IS
747 'Ticket number in the primary bugtracker.';
748
749
750COMMENT ON COLUMN FailureReasons.asUrls IS
751 'Other URLs to reports or discussions of the observed symptoms.';
752
753
754COMMENT ON TABLE TestResultFailures IS
755 'This is for tracking/discussing test result failures.
756
757The rational for putting this is a separate table is that we need history on
758this while TestResults does not.
759
760@remarks This table stores history. Never update or delete anything. The
761 equivalent of deleting is done by setting the ''tsExpire'' field to
762 current_timestamp. To select the currently valid entries use
763 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
764
765
766COMMENT ON COLUMN TestResultFailures.tsEffective IS
767 'When this row starts taking effect (inclusive).';
768
769
770COMMENT ON COLUMN TestResultFailures.tsExpire IS
771 'When this row stops being tsEffective (exclusive).';
772
773
774COMMENT ON COLUMN TestResultFailures.uidAuthor IS
775 'The user id of the one who created/modified this entry.
776Non-unique foreign key: Users(uid)';
777
778
779COMMENT ON COLUMN TestResultFailures.sComment IS
780 'Optional comment.';
781
782
783COMMENT ON TABLE BuildBlacklist IS
784 'Table used to blacklist sets of builds.
785
786The best usage example is a VMM developer realizing that a change causes the
787host to panic, hang, or otherwise misbehave. To prevent the testbox sheriff
788from repeatedly having to reboot testboxes, the builds gets blacklisted
789until there is a working build again. This may mean adding an open ended
790blacklist spec and then updating it with the final revision number once the
791fix has been committed.
792
793@remarks This table stores history. Never update or delete anything. The
794 equivalent of deleting is done by setting the ''tsExpire'' field to
795 current_timestamp. To select the currently valid entries use
796 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.
797
798@todo Would be nice if we could replace the text strings below with a set of
799 BuildCategories, or sore it in any other way which would enable us to
800 do a negative join with build category... The way it is specified
801 now, it looks like we have to open a cursor of prospecitve builds and
802 filter then thru this table one by one.
803
804 Any better representation is welcome, but this is low prioirty for
805 now, as it''s relatively easy to change this later one.';
806
807
808COMMENT ON COLUMN BuildBlacklist.tsEffective IS
809 'When this row starts taking effect (inclusive).';
810
811
812COMMENT ON COLUMN BuildBlacklist.tsExpire IS
813 'When this row stops being tsEffective (exclusive).';
814
815
816COMMENT ON COLUMN BuildBlacklist.uidAuthor IS
817 'The user id of the one who created/modified this entry.
818Non-unique foreign key: Users(uid)';
819
820
821COMMENT ON COLUMN BuildBlacklist.sProduct IS
822 'Which product.
823ASSUME that it is okay to limit a blacklisting to a single product.';
824
825
826COMMENT ON COLUMN BuildBlacklist.sBranch IS
827 'Which branch.
828ASSUME that it is okay to limit a blacklisting to a branch.';
829
830
831COMMENT ON COLUMN BuildBlacklist.asTypes IS
832 'Build types to include, all matches if NULL.';
833
834
835COMMENT ON COLUMN BuildBlacklist.asOsArches IS
836 'Array of the ''sOs.sCpuArch'' to match, all matches if NULL.
837See KBUILD_OSES in kBuild for a list of standard target OSes, and
838KBUILD_ARCHES for a list of standard architectures.
839
840@remarks See marks on ''os-agnostic'' and ''noarch'' in BuildCategories.';
841
842
843COMMENT ON COLUMN BuildBlacklist.iFirstRevision IS
844 'The first subversion tree revision to blacklist.';
845
846
847COMMENT ON COLUMN BuildBlacklist.iLastRevision IS
848 'The last subversion tree revision to blacklist, no upper limit if NULL.';
849
850
851COMMENT ON TABLE BuildCategories IS
852 'Build categories.
853
854The purpose of this table is saving space in the Builds table and hopefully
855speed things up when selecting builds as well (compared to selecting on 4
856text fields in the much larger Builds table).
857
858Insert only table, no update, no delete. History is not needed.';
859
860
861COMMENT ON COLUMN BuildCategories.sProduct IS
862 'Product.
863The product name. For instance ''VBox'' or ''VBoxTestSuite''.';
864
865
866COMMENT ON COLUMN BuildCategories.sBranch IS
867 'The branch name.';
868
869
870COMMENT ON COLUMN BuildCategories.sType IS
871 'The build type.
872See KBUILD_BLD_TYPES in kBuild for a list of standard build types.';
873
874
875COMMENT ON COLUMN BuildCategories.asOsArches IS
876 'Array of the ''sOs.sCpuArch'' supported by the build.
877See KBUILD_OSES in kBuild for a list of standard target OSes, and
878KBUILD_ARCHES for a list of standard architectures.
879
880@remarks ''os-agnostic'' is used if the build doesn''t really target any
881 specific OS or if it targets all applicable OSes.
882 ''noarch'' is used if the build is architecture independent or if
883 all applicable architectures are handled.
884 Thus, ''os-agnostic.noarch'' will run on all build boxes.
885
886@note The array shall be sorted ascendingly to prevent unnecessary duplicates!';
887
888
889COMMENT ON TABLE Builds IS
890 'The builds table contains builds from the tinderboxes and oaccasionally from
891developers.
892
893The tinderbox side could be fed by a batch job enumerating the build output
894directories every so often, looking for new builds. Or we could query them
895from the tinderbox database. Yet another alternative is making the
896tinderbox server or client side software inform us about all new builds.
897
898The developer builds are entered manually thru the TM web UI. They are used
899for subjecting new code to some larger scale testing before commiting,
900enabling, or merging a private branch.
901
902The builds are being selected from this table by the via the build source
903specification that SchedGroups.idBuildSrc and
904SchedGroups.idBuildSrcTestSuite links to.
905
906@remarks This table stores history. Never update or delete anything. The
907 equivalent of deleting is done by setting the ''tsExpire'' field to
908 current_timestamp. To select the currently valid entries use
909 tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
910
911
912COMMENT ON COLUMN Builds.tsCreated IS
913 'When this build was created or entered into the database.
914This remains unchanged';
915
916
917COMMENT ON COLUMN Builds.tsEffective IS
918 'When this row starts taking effect (inclusive).';
919
920
921COMMENT ON COLUMN Builds.tsExpire IS
922 'When this row stops being tsEffective (exclusive).';
923
924
925COMMENT ON COLUMN Builds.uidAuthor IS
926 'The user id of the one who created/modified this entry.
927Non-unique foreign key: Users(uid)
928@note This is NULL if added by a batch job / tinderbox.';
929
930
931COMMENT ON COLUMN Builds.iRevision IS
932 'The subversion tree revision of the build.';
933
934
935COMMENT ON COLUMN Builds.sVersion IS
936 'The product version number (suitable for RTStrVersionCompare).';
937
938
939COMMENT ON COLUMN Builds.sLogUrl IS
940 'The link to the tinderbox log of this build.';
941
942
943COMMENT ON COLUMN Builds.sBinaries IS
944 'Comma separated list of binaries.
945The binaries have paths relative to the TESTBOX_PATH_BUILDS or full URLs.';
946
947
948COMMENT ON COLUMN Builds.fBinariesDeleted IS
949 'Set when the binaries gets deleted by the build quota script.';
950
951
952COMMENT ON TABLE TestResultStrTab IS
953 'String table for the test results.
954
955This is a string cache for value names, test names and possible more, that
956is frequently repated in the test results record for each test run. The
957purpose is not only to save space, but to make datamining queries faster by
958giving them integer fields to work on instead of text fields. There may
959possibly be some benefits on INSERT as well as there are only integer
960indexes.
961
962Nothing is ever deleted from this table.
963
964@note Should use a stored procedure to query/insert a string.';
965
966
967COMMENT ON COLUMN TestResultStrTab.sValue IS
968 'The string value.';
969
970
971COMMENT ON COLUMN TestResultStrTab.tsCreated IS
972 'Creation time stamp.';
973
974
975COMMENT ON TYPE TestStatus_T IS
976 'The status of a test (set / result).';
977
978
979COMMENT ON TABLE TestResults IS
980 'Test results - a recursive bundle of joy!
981
982A test case will be created when the testdriver calls reporter.testStart and
983concluded with reporter.testDone. The testdriver (or it subordinates) can
984use these methods to create nested test results. For IPRT based test cases,
985RTTestCreate, RTTestInitAndCreate and RTTestSub will both create new test
986result records, where as RTTestSubDone, RTTestSummaryAndDestroy and
987RTTestDestroy will conclude records.
988
989By concluding is meant updating the status. When the test driver reports
990success, we check it against reported results. (paranoia strikes again!)
991
992Nothing is ever deleted from this table.
993
994@note As seen below, several other tables associate data with a
995 test result, and the top most test result is referenced by the
996 test set.';
997
998
999COMMENT ON COLUMN TestResults.tsCreated IS
1000 'Creation time stamp. This may also be the timestamp of when the test started.';
1001
1002
1003COMMENT ON COLUMN TestResults.tsElapsed IS
1004 'The elapsed time for this test.
1005This is either reported by the directly (with some sanity checking) or
1006calculated (current_timestamp - created_ts).
1007@todo maybe use a nanosecond field here, check with what';
1008
1009
1010COMMENT ON COLUMN TestResults.cErrors IS
1011 'The error count.';
1012
1013
1014COMMENT ON COLUMN TestResults.enmStatus IS
1015 'The test status.';
1016
1017
1018COMMENT ON COLUMN TestResults.iNestingDepth IS
1019 'Nesting depth.';
1020
1021
1022COMMENT ON TABLE TestResultValues IS
1023 'Test result values.
1024
1025A testdriver or subordinate may report a test value via
1026reporter.testValue(), while IPRT based test will use RTTestValue and
1027associates.
1028
1029This is an insert only table, no deletes, no updates.';
1030
1031
1032COMMENT ON COLUMN TestResultValues.tsCreated IS
1033 'Creation time stamp.';
1034
1035
1036COMMENT ON COLUMN TestResultValues.lValue IS
1037 'The value.';
1038
1039
1040COMMENT ON COLUMN TestResultValues.iUnit IS
1041 'The unit.
1042@todo This is currently not defined properly. Will fix/correlate this
1043 with the other places we use unit (IPRT/testdriver/VMMDev).';
1044
1045
1046COMMENT ON TABLE TestResultFiles IS
1047 'Test result files.
1048
1049A testdriver or subordinate may report a file by using
1050reporter.addFile() or reporter.addLogFile().
1051
1052The files stored here as well as the primary log file will be processed by a
1053batch job and compressed if considered compressable. Thus, TM will look for
1054files with a .gz/.bz2 suffix first and then without a suffix.
1055
1056This is an insert only table, no deletes, no updates.';
1057
1058
1059COMMENT ON COLUMN TestResultFiles.tsCreated IS
1060 'Creation time stamp.';
1061
1062
1063COMMENT ON INDEX TestResultFilesIdx IS
1064 'The mime type for the file.
1065For instance: ''text/plain'',
1066 ''image/png'',
1067 ''video/webm'',
1068 ''text/xml''';
1069
1070
1071COMMENT ON TABLE TestResultMsgs IS
1072 'Test result message.
1073
1074A testdriver or subordinate may report a message via the sDetails parameter
1075of the reporter.testFailure() method, while IPRT test cases will use
1076RTTestFailed, RTTestPrintf and their friends. For RTTestPrintf, we will
1077ignore the more verbose message levels since these can also be found in one
1078of the logs.
1079
1080This is an insert only table, no deletes, no updates.';
1081
1082
1083COMMENT ON COLUMN TestResultMsgs.tsCreated IS
1084 'Creation time stamp.';
1085
1086
1087COMMENT ON COLUMN TestResultMsgs.enmLevel IS
1088 'The message level.';
1089
1090
1091COMMENT ON TABLE TestSets IS
1092 'Test sets / Test case runs.
1093
1094This is where we collect data about test runs.
1095
1096@todo Not entirely sure where the ''test set'' term came from. Consider
1097 finding something more appropriate.';
1098
1099
1100COMMENT ON COLUMN TestSets.tsConfig IS
1101 'The test config timestamp, used when reading test config.';
1102
1103
1104COMMENT ON COLUMN TestSets.tsCreated IS
1105 'When this test set was scheduled.
1106idGenTestBox is valid at this point.';
1107
1108
1109COMMENT ON COLUMN TestSets.tsDone IS
1110 'When this test completed, i.e. testing stopped. This should only be set once.';
1111
1112
1113COMMENT ON COLUMN TestSets.enmStatus IS
1114 'The current status.';
1115
1116
1117COMMENT ON COLUMN TestSets.sBaseFilename IS
1118 'The base filename used for storing files related to this test set.
1119This is a path relative to wherever TM is dumping log files. In order
1120to not become a file system test case, we will try not to put too many
1121hundred thousand files in a directory. A simple first approach would
1122be to just use the current date (tsCreated) like this:
1123 TM_FILE_DIR/year/month/day/TestSets.idTestSet
1124
1125The primary log file for the test is this name suffixed by ''.log''.
1126
1127The files in the testresultfile table gets their full names like this:
1128 TM_FILE_DIR/sBaseFilename-testresultfile.id-TestResultStrTab(testresultfile.idStrFilename)
1129
1130@remarks We store this explicitly in case we change the directly layout
1131 at some later point.';
1132
1133
1134COMMENT ON COLUMN TestSets.iGangMemberNo IS
1135 'The gang member number number, 0 is the leader.';
1136
1137
1138COMMENT ON INDEX TestSetsGangIdx IS
1139 'The test set of the gang leader, NULL if no gang involved.
1140@note This is set by the gang leader as well, so that we can find all
1141 gang members by WHERE idTestSetGangLeader = :id.';
1142
1143
1144COMMENT ON TYPE TestBoxState_T IS
1145 'TestBox state.
1146
1147@todo Consider drawing a state diagram for this.';
1148
1149
1150COMMENT ON TABLE TestBoxStatuses IS
1151 'Testbox status table.
1152
1153History is not planned on this table.';
1154
1155
1156COMMENT ON COLUMN TestBoxStatuses.tsUpdated IS
1157 'When this status was last updated.
1158This is updated everytime the testbox talks to the test manager, thus it
1159can easily be used to find testboxes which has stopped responding.
1160
1161This is used for timeout calculation during gang-gathering, so in that
1162scenario it won''t be updated until the gang is gathered or we time out.';
1163
1164
1165COMMENT ON COLUMN TestBoxStatuses.enmState IS
1166 'The current state.';
1167
1168
1169COMMENT ON TABLE GlobalResourceStatuses IS
1170 'Global resource status, tracks which test set resources are allocated by.
1171
1172History is not planned on this table.';
1173
1174
1175COMMENT ON COLUMN GlobalResourceStatuses.tsAllocated IS
1176 'When the allocation took place.';
1177
1178
1179COMMENT ON TABLE SchedQueues IS
1180 'Scheduler queue.
1181
1182The queues are currently associated with a scheduling group, it could
1183alternative be changed to hook on to a testbox instead. It depends on what
1184kind of scheduling method we prefer. The former method aims at test case
1185thruput, making sacrifices in the hardware distribution area. The latter is
1186more like the old buildbox style testing, making sure that each test case is
1187executed on each testbox.
1188
1189When there are configuration changes, TM will regenerate the scheduling
1190queue for the affected scheduling groups. We do not concern ourselves with
1191trying to continue at the approximately same queue position, we simply take
1192it from the top.
1193
1194When a testbox ask for work, we will open a cursor on the queue and take the
1195first test in the queue that can be executed on that testbox. The test will
1196be moved to the end of the queue (getting a new item_id).
1197
1198If a test is manually changed to the head of the queue, the item will get a
1199item_id which is 1 lower than the head of the queue. Unless someone does
1200this a couple of billion times, we shouldn''t have any trouble running out of
1201number space. :-)
1202
1203Manually moving a test to the end of the queue is easy, just get a new
1204''item_id''.
1205
1206History is not planned on this table.';
1207
1208
1209COMMENT ON COLUMN SchedQueues.bmHourlySchedule IS
1210 'The scheduling time constraints (see SchedGroupMembers.bmHourlySchedule).';
1211
1212
1213COMMENT ON COLUMN SchedQueues.tsConfig IS
1214 'When the queue entry was created and for which config is valid.
1215This is the timestamp that should be used when reading config info.';
1216
1217
1218COMMENT ON COLUMN SchedQueues.tsLastScheduled IS
1219 'When this status was last scheduled.
1220This is set to current_timestamp when moving the entry to the end of the
1221queue. It''s initial value is unix-epoch. Not entirely sure if it''s
1222useful beyond introspection and non-unique foreign key hacking.';
1223
1224
1225COMMENT ON COLUMN SchedQueues.cMissingGangMembers IS
1226 'The number of gang members still missing.
1227
1228This saves calculating the number of missing members via selects like:
1229 SELECT COUNT(*) FROM TestSets WHERE idTestSetGangLeader = :idGang;
1230and
1231 SELECT cGangMembers FROM TestCaseArgs WHERE idGenTestCaseArgs = :idTest;
1232to figure out whether to remain in ''gather-gang''::TestBoxState_T.';
1233
1234
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette