Artifact
015c514bd8919467c1074dc3068a527abb3988b5 :
File
tests/doctype.test
— part of check-in
[0c74c1fded]
at
2002-07-28 23:20:37
on branch trunk
— Added the inclusion of loadtdom.tcl and adjusted baseURI / load of external files where necessary.
(user:
rolf
size: 1224)
0000: 23 20 46 65 61 74 75 72 65 73 20 63 6f 76 65 72 # Features cover
0010: 65 64 3a 20 20 44 6f 63 75 6d 65 6e 74 20 54 79 ed: Document Ty
0020: 70 65 20 44 65 63 6c 61 72 61 74 69 6f 6e 0a 23 pe Declaration.#
0030: 0a 23 20 54 68 69 73 20 66 69 6c 65 20 74 65 73 .# This file tes
0040: 74 73 20 74 68 65 20 70 61 72 73 65 72 27 73 20 ts the parser's
0050: 70 65 72 66 6f 72 6d 61 6e 63 65 20 6f 6e 20 44 performance on D
0060: 6f 63 75 6d 65 6e 74 20 54 79 70 65 20 44 65 63 ocument Type Dec
0070: 6c 61 72 61 74 69 6f 6e 73 2e 0a 23 20 53 6f 75 larations..# Sou
0080: 72 63 69 6e 67 20 74 68 69 73 20 66 69 6c 65 20 rcing this file
0090: 69 6e 74 6f 20 54 63 6c 20 72 75 6e 73 20 74 68 into Tcl runs th
00a0: 65 20 74 65 73 74 73 20 61 6e 64 20 67 65 6e 65 e tests and gene
00b0: 72 61 74 65 73 20 6f 75 74 70 75 74 0a 23 20 66 rates output.# f
00c0: 6f 72 20 65 72 72 6f 72 73 2e 20 20 4e 6f 20 6f or errors. No o
00d0: 75 74 70 75 74 20 6d 65 61 6e 73 20 6e 6f 20 65 utput means no e
00e0: 72 72 6f 72 73 20 77 65 72 65 20 66 6f 75 6e 64 rrors were found
00f0: 2e 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 ..#.# Copyright
0100: 28 63 29 20 31 39 39 38 2d 32 30 30 30 20 5a 76 (c) 1998-2000 Zv
0110: 65 6e 6f 20 50 74 79 20 4c 74 64 2e 0a 23 0a 23 eno Pty Ltd..#.#
0120: 20 24 49 64 24 0a 0a 73 6f 75 72 63 65 20 5b 66 $Id$..source [f
0130: 69 6c 65 20 6a 6f 69 6e 20 5b 66 69 6c 65 20 64 ile join [file d
0140: 69 72 20 5b 69 6e 66 6f 20 73 63 72 69 70 74 5d ir [info script]
0150: 5d 20 6c 6f 61 64 74 64 6f 6d 2e 74 63 6c 5d 0a ] loadtdom.tcl].
0160: 0a 63 61 74 63 68 20 7b 75 6e 73 65 74 20 72 65 .catch {unset re
0170: 73 75 6c 74 7d 0a 70 72 6f 63 20 64 6f 63 74 79 sult}.proc docty
0180: 70 65 20 7b 6e 61 6d 65 20 70 75 62 20 73 79 73 pe {name pub sys
0190: 74 65 6d 20 64 74 64 7d 20 7b 0a 20 20 20 20 6c tem dtd} {. l
01a0: 61 70 70 65 6e 64 20 3a 3a 72 65 73 75 6c 74 20 append ::result
01b0: 24 6e 61 6d 65 20 24 70 75 62 20 24 73 79 73 74 $name $pub $syst
01c0: 65 6d 20 24 64 74 64 0a 7d 0a 0a 74 65 73 74 20 em $dtd.}..test
01d0: 64 6f 63 74 79 70 65 2d 31 2e 31 20 7b 44 6f 63 doctype-1.1 {Doc
01e0: 75 6d 65 6e 74 20 54 79 70 65 20 44 65 63 6c 61 ument Type Decla
01f0: 72 61 74 69 6f 6e 3a 20 6e 6f 20 69 6e 74 65 72 ration: no inter
0200: 6e 61 6c 20 44 54 44 20 73 75 62 73 65 74 7d 20 nal DTD subset}
0210: 7b 0a 20 20 20 20 73 65 74 20 3a 3a 72 65 73 75 {. set ::resu
0220: 6c 74 20 7b 7d 0a 0a 20 20 20 20 63 61 74 63 68 lt {}.. catch
0230: 20 7b 72 65 6e 61 6d 65 20 78 6d 6c 3a 3a 64 6f {rename xml::do
0240: 63 74 79 70 65 2d 31 2e 31 20 7b 7d 7d 0a 20 20 ctype-1.1 {}}.
0250: 20 20 73 65 74 20 70 61 72 73 65 72 20 5b 78 6d set parser [xm
0260: 6c 3a 3a 70 61 72 73 65 72 20 64 6f 63 74 79 70 l::parser doctyp
0270: 65 2d 31 2e 31 20 5c 0a 09 2d 73 74 61 72 74 64 e-1.1 \..-startd
0280: 6f 63 74 79 70 65 64 65 63 6c 63 6f 6d 6d 61 6e octypedeclcomman
0290: 64 20 64 6f 63 74 79 70 65 5d 0a 20 20 20 20 24 d doctype]. $
02a0: 70 61 72 73 65 72 20 70 61 72 73 65 20 7b 3c 3f parser parse {<?
02b0: 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 xml version="1.0
02c0: 22 3f 3e 0a 3c 21 44 4f 43 54 59 50 45 20 54 65 "?>.<!DOCTYPE Te
02d0: 73 74 3e 0a 3c 54 65 73 74 3e 3c 2f 54 65 73 74 st>.<Test></Test
02e0: 3e 0a 7d 0a 20 20 20 20 73 65 74 20 3a 3a 72 65 >.}. set ::re
02f0: 73 75 6c 74 0a 7d 20 7b 54 65 73 74 20 4e 55 4c sult.} {Test NUL
0300: 4c 20 4e 55 4c 4c 20 30 7d 0a 0a 74 65 73 74 20 L NULL 0}..test
0310: 64 6f 63 74 79 70 65 2d 32 2e 31 20 7b 44 6f 63 doctype-2.1 {Doc
0320: 75 6d 65 6e 74 20 54 79 70 65 20 44 65 63 6c 61 ument Type Decla
0330: 72 61 74 69 6f 6e 3a 20 69 6e 74 65 72 6e 61 6c ration: internal
0340: 20 44 54 44 20 73 75 62 73 65 74 7d 20 7b 0a 20 DTD subset} {.
0350: 20 20 20 73 65 74 20 3a 3a 72 65 73 75 6c 74 20 set ::result
0360: 7b 7d 0a 0a 20 20 20 20 63 61 74 63 68 20 7b 72 {}.. catch {r
0370: 65 6e 61 6d 65 20 78 6d 6c 3a 3a 64 6f 63 74 79 ename xml::docty
0380: 70 65 2d 32 2e 31 20 7b 7d 7d 0a 20 20 20 20 73 pe-2.1 {}}. s
0390: 65 74 20 70 61 72 73 65 72 20 5b 78 6d 6c 3a 3a et parser [xml::
03a0: 70 61 72 73 65 72 20 64 6f 63 74 79 70 65 2d 32 parser doctype-2
03b0: 2e 31 20 5c 0a 09 2d 73 74 61 72 74 64 6f 63 74 .1 \..-startdoct
03c0: 79 70 65 64 65 63 6c 63 6f 6d 6d 61 6e 64 20 64 ypedeclcommand d
03d0: 6f 63 74 79 70 65 5d 0a 20 20 20 20 24 70 61 72 octype]. $par
03e0: 73 65 72 20 70 61 72 73 65 20 7b 3c 3f 78 6d 6c ser parse {<?xml
03f0: 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 3f 3e version="1.0"?>
0400: 0a 3c 21 44 4f 43 54 59 50 45 20 54 65 73 74 20 .<!DOCTYPE Test
0410: 5b 3c 21 45 4c 45 4d 45 4e 54 20 54 65 73 74 20 [<!ELEMENT Test
0420: 45 4d 50 54 59 3e 5d 3e 0a 3c 54 65 73 74 3e 3c EMPTY>]>.<Test><
0430: 2f 54 65 73 74 3e 0a 7d 0a 20 20 20 20 73 65 74 /Test>.}. set
0440: 20 3a 3a 72 65 73 75 6c 74 0a 7d 20 7b 54 65 73 ::result.} {Tes
0450: 74 20 4e 55 4c 4c 20 4e 55 4c 4c 20 31 7d 0a 0a t NULL NULL 1}..
0460: 66 6f 72 65 61 63 68 20 70 61 72 73 65 72 20 5b foreach parser [
0470: 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 64 6f info commands do
0480: 63 74 79 70 65 2d 2a 5d 20 7b 0a 20 20 20 20 24 ctype-*] {. $
0490: 70 61 72 73 65 72 20 66 72 65 65 0a 7d 0a 0a 23 parser free.}..#
04a0: 20 63 6c 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 65 cleanup.::tclte
04b0: 73 74 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 st::cleanupTests
04c0: 0a 72 65 74 75 72 6e 0a .return.