puts "All exceptions is OK"
puts "TODO OCC12345 ALL: An exception was caught"
puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*"

puts "========"
puts "OCC669"
puts "========"
puts ""
#########################################
## Standard_GUID("HoleFeature") cause stack overwrite
#########################################

pload QAcommands

set GoodGUIDList [list 00000000-0000-0000-0000-000000000000 \
                                                            \
                       0000000A-0000-0000-0000-000000000000 \
                       0000000B-0000-0000-0000-000000000000 \
                       0000000C-0000-0000-0000-000000000000 \
                       0000000D-0000-0000-0000-000000000000 \
                       0000000E-0000-0000-0000-000000000000 \
                       0000000F-0000-0000-0000-000000000000 \
                                                            \
                       0000000a-0000-0000-0000-000000000000 \
                       0000000b-0000-0000-0000-000000000000 \
                       0000000c-0000-0000-0000-000000000000 \
                       0000000d-0000-0000-0000-000000000000 \
                       0000000e-0000-0000-0000-000000000000 \
                       0000000f-0000-0000-0000-000000000000 \
                                                            \
                       00000000-000A-0000-0000-000000000000 \
                       00000000-000B-0000-0000-000000000000 \
                       00000000-000C-0000-0000-000000000000 \
                       00000000-000D-0000-0000-000000000000 \
                       00000000-000E-0000-0000-000000000000 \
                       00000000-000F-0000-0000-000000000000 \
                                                            \
                       00000000-000a-0000-0000-000000000000 \
                       00000000-000b-0000-0000-000000000000 \
                       00000000-000c-0000-0000-000000000000 \
                       00000000-000d-0000-0000-000000000000 \
                       00000000-000e-0000-0000-000000000000 \
                       00000000-000f-0000-0000-000000000000 \
                                                            \
                       00000000-0000-000A-0000-000000000000 \
                       00000000-0000-000B-0000-000000000000 \
                       00000000-0000-000C-0000-000000000000 \
                       00000000-0000-000D-0000-000000000000 \
                       00000000-0000-000E-0000-000000000000 \
                       00000000-0000-000F-0000-000000000000 \
                                                            \
                       00000000-0000-000a-0000-000000000000 \
                       00000000-0000-000b-0000-000000000000 \
                       00000000-0000-000c-0000-000000000000 \
                       00000000-0000-000d-0000-000000000000 \
                       00000000-0000-000e-0000-000000000000 \
                       00000000-0000-000f-0000-000000000000 \
                                                            \
                       00000000-0000-0000-000A-000000000000 \
                       00000000-0000-0000-000B-000000000000 \
                       00000000-0000-0000-000C-000000000000 \
                       00000000-0000-0000-000D-000000000000 \
                       00000000-0000-0000-000E-000000000000 \
                       00000000-0000-0000-000F-000000000000 \
                                                            \
                       00000000-0000-0000-000a-000000000000 \
                       00000000-0000-0000-000b-000000000000 \
                       00000000-0000-0000-000c-000000000000 \
                       00000000-0000-0000-000d-000000000000 \
                       00000000-0000-0000-000e-000000000000 \
                       00000000-0000-0000-000f-000000000000 \
                                                            \
                       00000000-0000-0000-0000-00000000000A \
                       00000000-0000-0000-0000-00000000000B \
                       00000000-0000-0000-0000-00000000000C \
                       00000000-0000-0000-0000-00000000000D \
                       00000000-0000-0000-0000-00000000000E \
                       00000000-0000-0000-0000-00000000000F \
                                                            \
                       00000000-0000-0000-0000-00000000000a \
                       00000000-0000-0000-0000-00000000000b \
                       00000000-0000-0000-0000-00000000000c \
                       00000000-0000-0000-0000-00000000000d \
                       00000000-0000-0000-0000-00000000000e \
                       00000000-0000-0000-0000-00000000000f ]

set BadGUIDList [list  \
                                                           \
                      0000000G-0000-0000-0000-000000000000 \
                      0000000g-0000-0000-0000-000000000000 \
                                                           \
                      00000000-000G-0000-0000-000000000000 \
                      00000000-000g-0000-0000-000000000000 \
                                                           \
                      00000000-0000-000G-0000-000000000000 \
                      00000000-0000-000g-0000-000000000000 \
                                                           \
                      00000000-0000-0000-000G-000000000000 \
                      00000000-0000-0000-000g-000000000000 \
                                                           \
                      00000000-0000-0000-0000-00000000000G \
                      00000000-0000-0000-0000-00000000000g \
                                                           \
                      000000000000000000000000000000000000 \
                      0000000000000000000000000000000000000 \
                      00000000000000000000000000000000000 \
                                                           \
                      0000000000000-0000-0000-000000000000 \
                      00000000-000000000-0000-000000000000 \
                      00000000-0000-000000000-000000000000 \
                      00000000-0000-0000-00000000000000000 \
                                                           \
                      000000000-0000-0000-0000-000000000000 \
                      0000000-0000-0000-0000-000000000000 \
                                                           \
                      00000000-00000-0000-0000-000000000000 \
                      00000000-000-0000-0000-000000000000 \
                                                           \
                      00000000-0000-00000-0000-000000000000 \
                      00000000-0000-000-0000-000000000000 \
                                                           \
                      00000000-0000-0000-00000-000000000000 \
                      00000000-0000-0000-000-000000000000 \
                                                           \
                      00000000-0000-0000-0000-0000000000000 \
                      00000000-0000-0000-0000-00000000000 \
                                                           \
                      "" ]

set IsOK 1

set i 0

foreach GUID ${GoodGUIDList} {
  incr i
  if [catch { OCC669 ${GUID} }] then {
    set IsOK 0
    puts "GUID=\"${GUID}\""
    puts "Faulty OCC669 (case ${i})"
  } else {
    puts "OCC669 OK (case ${i})"
  }
}


foreach GUID ${BadGUIDList} {
  incr i
  if [catch { OCC669 ${GUID} }] then {
    puts "OCC669 OK (case ${i})"
  } else {
    set IsOK 0
    puts "GUID=\"${GUID}\""
    puts "Faulty OCC669 (case ${i})"
  }
}

if { ${IsOK} == 1} {
  puts "OCC669 OK"
} else {
  puts "Faulty OCC669"
}

