tDOM

Hex Artifact Content
Login

Hex Artifact Content

Artifact 015c514bd8919467c1074dc3068a527abb3988b5:


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.