System.Data.SQLite
Check-in [d7f2f75ba3]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Modify the unit tests and infrastructure to support the new semantics for the compileCSharp script library procedure. Also, update the included Eagle script library in Externals.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: d7f2f75ba30bf29de45e42314dc0a15a449d2342
User & Date: mistachkin 2011-12-21 01:39:11
Context
2011-12-21
05:35
Fix some whitespace. check-in: f034fafd6b user: mistachkin tags: trunk
01:39
Modify the unit tests and infrastructure to support the new semantics for the compileCSharp script library procedure. Also, update the included Eagle script library in Externals. check-in: d7f2f75ba3 user: mistachkin tags: trunk
2011-12-20
23:53
Make the vendor-specific Eagle initialization file aware of the new 'database_directory' variable. check-in: 799407c7ea user: mistachkin tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to Externals/Eagle/lib/Eagle1.0/init.eagle.

   746    746           unset -nocomplain process; # dispose
   747    747         }
   748    748       }
   749    749   
   750    750       #
   751    751       # NOTE: This proc can be used to dynamically compile C# code in a script.
   752    752       #
   753         -    proc compileCSharp { string resultsVarName errorsVarName args } {
          753  +    proc compileCSharp {
          754  +            string memory symbols strict resultsVarName errorsVarName args } {
   754    755         #
   755    756         # NOTE: Create the C# code provider object (i.e. the compiler).
   756    757         #
   757    758         set provider [object create -alias Microsoft.CSharp.CSharpCodeProvider]
   758    759   
   759    760         #
   760    761         # NOTE: Create the object that provides various parameters to the C#
   761    762         #       code provider (i.e. the compiler options).
   762    763         #
   763    764         set parameters [object create -alias \
   764    765             System.CodeDom.Compiler.CompilerParameters]
   765    766   
   766    767         #
   767         -      # NOTE: By default, we do not want to persist the generated assembly
   768         -      #       to disk.
          768  +      # NOTE: Do we not want to persist the generated assembly to disk?
   769    769         #
   770         -      $parameters GenerateInMemory true
          770  +      if {$memory} then {
          771  +        $parameters GenerateInMemory true
          772  +      }
          773  +
          774  +      #
          775  +      # NOTE: Do we want symbols to be generated for the generated assembly?
          776  +      #
          777  +      if {$symbols} then {
          778  +        $parameters IncludeDebugInformation true
          779  +      }
   771    780   
   772    781         #
   773    782         # NOTE: Make sure that the "standard" preprocessor defines match those
   774    783         #       for the platform (i.e. the ones used to compile the Eagle core
   775    784         #       library assembly).
   776    785         #
   777    786         set platformOptions [expr { \
................................................................................
   828    837         unset provider; # dispose
   829    838   
   830    839         #
   831    840         # NOTE: Fetch the collection of compiler errors (which may be empty).
   832    841         #
   833    842         set errors [$results -alias Errors]
   834    843   
   835         -      #
   836         -      # NOTE: How many compile errors?
   837         -      #
   838         -      set count [$errors Count]
   839         -
   840    844         #
   841    845         # NOTE: It is assumed that no assembly was generated if there were
   842         -      #       any compile errors.
          846  +      #       any compiler errors.  Ignore all compiler warnings unless
          847  +      #       we are in strict mode.
   843    848         #
   844         -      if {$count > 0} then {
          849  +      if {[$errors HasErrors] || ($strict && [$errors HasWarnings])} then {
   845    850           #
   846    851           # NOTE: Compilation of the assembly failed.
   847    852           #
   848    853           set code Error
   849    854   
   850    855           #
   851    856           # NOTE: Prepare to transfer the error messages to the caller.
   852    857           #
   853    858           upvar 1 $errorsVarName local_errors
   854    859   
          860  +        #
          861  +        # NOTE: How many compile errors?
          862  +        #
          863  +        set count [$errors Count]
          864  +
          865  +        #
          866  +        # NOTE: Grab each error object and append the string itself to
          867  +        #       the overall list of errors.
          868  +        #
   855    869           for {set index 0} {$index < $count} {incr index} {
   856    870             #
   857    871             # NOTE: Get the compiler error object at this index.
   858    872             #
   859    873             set error [$errors -alias Item $index]
   860    874   
   861    875             #

Changes to Externals/Eagle/lib/Eagle1.0/test.eagle.

   855    855   
   856    856     proc clearTestPercent { channel } {
   857    857       if {[isEagle]} then {
   858    858         host title ""
   859    859       }
   860    860     }
   861    861   
   862         -  proc reportTestPercent { channel percent } {
          862  +  proc reportTestPercent { channel percent failed leaked } {
   863    863       set status [appendArgs "---- test suite running, about " $percent \
   864         -        "% complete..."]
          864  +        "% complete (" $failed " failed, " $leaked " leaked)..."]
   865    865   
   866    866       tputs $channel [appendArgs $status \n]
   867    867   
   868    868       if {[isEagle]} then {
   869    869         host title $status
   870    870       }
   871    871     }
................................................................................
   909    909         #
   910    910         # NOTE: In terms of files, not tests, what percent done are we now?
   911    911         #
   912    912         set percent [formatDecimal \
   913    913             [expr {$total != 0 ? 100.0 * ($count / double($total)) : 100}]]
   914    914   
   915    915         if {$percent != $lastPercent} then {
   916         -        reportTestPercent $channel $percent
          916  +        reportTestPercent $channel $percent \
          917  +            [llength $failed] [llength $leaked]
          918  +
   917    919           set lastPercent $percent
   918    920         }
   919    921   
   920    922         #
   921    923         # NOTE: Skipping over any file name that matches a pattern in the
   922    924         #       list of file names to skip.
   923    925         #
................................................................................
  1030   1032             #
  1031   1033             # NOTE: In terms of files, not tests, what percent done are we now?
  1032   1034             #
  1033   1035             set percent [formatDecimal \
  1034   1036                 [expr {$total != 0 ? 100.0 * ($count / double($total)) : 100}]]
  1035   1037   
  1036   1038             if {$percent != $lastPercent} then {
  1037         -            reportTestPercent $channel $percent
         1039  +            reportTestPercent $channel $percent \
         1040  +                [llength $failed] [llength $leaked]
         1041  +
  1038   1042               set lastPercent $percent
  1039   1043             }
  1040   1044   
  1041   1045             #
  1042   1046             # NOTE: Record failed test count after this file.
  1043   1047             #
  1044   1048             if {[isEagle]} then {
................................................................................
  1086   1090           #
  1087   1091           # NOTE: In terms of files, not tests, what percent done are we now?
  1088   1092           #
  1089   1093           set percent [formatDecimal \
  1090   1094               [expr {$total != 0 ? 100.0 * ($count / double($total)) : 100}]]
  1091   1095   
  1092   1096           if {$percent != $lastPercent} then {
  1093         -          reportTestPercent $channel $percent
         1097  +          reportTestPercent $channel $percent \
         1098  +              [llength $failed] [llength $leaked]
         1099  +
  1094   1100             set lastPercent $percent
  1095   1101           }
  1096   1102   
  1097   1103           #
  1098   1104           # NOTE: If the test file raised an error (i.e. to indicate a
  1099   1105           #       test failure with the stop-on-failure flag enabled),
  1100   1106           #       break out of the test loop now.
................................................................................
  1113   1119         #
  1114   1120         # NOTE: In terms of files, not tests, what percent done are we now?
  1115   1121         #
  1116   1122         set percent [formatDecimal \
  1117   1123             [expr {$total != 0 ? 100.0 * ($count / double($total)) : 100}]]
  1118   1124   
  1119   1125         if {$percent != $lastPercent} then {
  1120         -        reportTestPercent $channel $percent
         1126  +        reportTestPercent $channel $percent \
         1127  +            [llength $failed] [llength $leaked]
         1128  +
  1121   1129           set lastPercent $percent
  1122   1130         }
  1123   1131       }
  1124   1132   
  1125   1133       #
  1126   1134       # NOTE: Reset the host title because we may have changed it in the for
  1127   1135       #       loop (above).

Changes to Externals/Eagle/lib/Test1.0/constraints.eagle.

   799    799           addConstraint primaryThread
   800    800   
   801    801           tputs $channel [appendArgs "yes (" $threadId ")\n"]
   802    802         } else {
   803    803           tputs $channel [appendArgs "no (" $threadId ")\n"]
   804    804         }
   805    805       }
          806  +
          807  +    proc checkForDefaultAppDomain { channel } {
          808  +      tputs $channel "---- checking for default application domain... "
          809  +
          810  +      set appDomain [object invoke AppDomain CurrentDomain]
          811  +
          812  +      if {[string length $appDomain] > 0} then {
          813  +        if {[object invoke $appDomain IsDefaultAppDomain]} then {
          814  +          addConstraint defaultAppDomain
          815  +
          816  +          tputs $channel [appendArgs "yes (" [object invoke $appDomain Id] \
          817  +              ")\n"]
          818  +        } else {
          819  +          tputs $channel [appendArgs "no (" [object invoke $appDomain Id] \
          820  +              ")\n"]
          821  +        }
          822  +      } else {
          823  +        tputs $channel [appendArgs "no (null)\n"]
          824  +      }
          825  +    }
   806    826   
   807    827       proc checkForRuntime { channel } {
   808    828         tputs $channel "---- checking for runtime... "
   809    829   
   810    830         #
   811    831         # NOTE: Are we running inside Mono (regardless of operating system)?
   812    832         #
................................................................................
  1059   1079   
  1060   1080       proc checkForThreadCulture { channel } {
  1061   1081         tputs $channel "---- checking for thread culture... "
  1062   1082   
  1063   1083         #
  1064   1084         # NOTE: Grab the current thread culture.
  1065   1085         #
         1086  +      set culture [object invoke System.Threading.Thread.CurrentThread \
         1087  +          CurrentCulture]
         1088  +
  1066   1089         set culture [object invoke Eagle._Components.Private.FormatOps \
  1067         -          CultureName [object invoke System.Threading.Thread.CurrentThread \
  1068         -          CurrentCulture] false]
         1090  +          CultureName $culture false]
  1069   1091   
  1070   1092         if {[string length $culture] > 0} then {
  1071   1093           #
  1072   1094           # NOTE: The culture information is present, use it and show it.
  1073   1095           #
  1074   1096           addConstraint [appendArgs threadCulture. [string map [list - _] \
  1075   1097               $culture]]

Changes to Externals/Eagle/lib/Test1.0/prologue.eagle.

   550    550       #       this check [nearly] first as it may [eventually] be used
   551    551       #       to help determine if other constraints should be skipped.
   552    552       #
   553    553       if {![info exists no(primaryThread)]} then {
   554    554         checkForPrimaryThread $test_channel
   555    555       }
   556    556   
          557  +    #
          558  +    # NOTE: Has default application domain detection support been
          559  +    #       disabled?  We do this check [nearly] first as it may
          560  +    #       [eventually] be used to help determine if other
          561  +    #       constraints should be skipped.
          562  +    #
          563  +    if {![info exists no(defaultAppDomain)]} then {
          564  +      checkForDefaultAppDomain $test_channel
          565  +    }
          566  +
   557    567       #
   558    568       # NOTE: Has runtime detection support been disabled?  We do this
   559    569       #       checking [nearly] first as it may skip other constraints.
   560    570       #
   561    571       if {![info exists no(runtime)]} then {
   562    572         checkForRuntime $test_channel
   563    573       }
................................................................................
  1029   1039           #
  1030   1040           # NOTE: For test "object-2.8".
  1031   1041           #
  1032   1042           checkForObjectMember $test_channel Eagle._Tests.Default+Disposable \
  1033   1043               *ToString* Eagle._Tests.Default.Disposable.ToString
  1034   1044         }
  1035   1045   
         1046  +      #
         1047  +      # NOTE: Has linked variable testing support been disabled?
         1048  +      #
         1049  +      if {![info exists no(testLinkedVariables)]} then {
         1050  +        #
         1051  +        # NOTE: For tests "basic-1.39", "basic-1.40", "basic-1.41",
         1052  +        #       "basic-1.42", and "basic-1.43".
         1053  +        #
         1054  +        checkForObjectMember $test_channel Eagle._Tests.Default \
         1055  +            *TestSetVariableLinks*
         1056  +
         1057  +        checkForObjectMember $test_channel Eagle._Tests.Default \
         1058  +            *TestUnsetVariableLinks*
         1059  +      }
         1060  +
         1061  +      #
         1062  +      # NOTE: Has field testing support been disabled?
         1063  +      #
         1064  +      if {![info exists no(testFields)]} then {
         1065  +        #
         1066  +        # NOTE: For tests "basic-1.39", "basic-1.40", "basic-1.41",
         1067  +        #       "basic-1.42", and "basic-1.43".
         1068  +        #
         1069  +        checkForObjectMember $test_channel Eagle._Tests.Default \
         1070  +            *privateField*
         1071  +
         1072  +        checkForObjectMember $test_channel Eagle._Tests.Default \
         1073  +            *objectField*
         1074  +
         1075  +        checkForObjectMember $test_channel Eagle._Tests.Default \
         1076  +            *intField*
         1077  +      }
         1078  +
         1079  +      #
         1080  +      # NOTE: Has property testing support been disabled?
         1081  +      #
         1082  +      if {![info exists no(testProperties)]} then {
         1083  +        #
         1084  +        # NOTE: For tests "basic-1.39", "basic-1.40", "basic-1.41",
         1085  +        #       "basic-1.42", and "basic-1.43".
         1086  +        #
         1087  +        checkForObjectMember $test_channel Eagle._Tests.Default \
         1088  +            *get_SimpleProperty*
         1089  +
         1090  +        #
         1091  +        # NOTE: For test "object-3.1".
         1092  +        #
         1093  +        checkForObjectMember $test_channel Eagle._Tests.Default \
         1094  +            *get_Item*
         1095  +
         1096  +        checkForObjectMember $test_channel Eagle._Tests.Default \
         1097  +            *set_Item*
         1098  +      }
         1099  +
  1036   1100         #
  1037   1101         # NOTE: Has core marshaller testing support been disabled?
  1038   1102         #
  1039   1103         if {![info exists no(testMarshaller)]} then {
  1040   1104           #
  1041   1105           # NOTE: For test "basic-1.29".
  1042   1106           #
................................................................................
  1066   1130   
  1067   1131           checkForObjectMember $test_channel Eagle._Tests.Default \
  1068   1132               *TestMulti3Array*
  1069   1133   
  1070   1134           checkForObjectMember $test_channel Eagle._Tests.Default \
  1071   1135               *TestNestedArray*
  1072   1136   
  1073         -        #
  1074         -        # NOTE: For test "object-3.1".
  1075         -        #
  1076         -        checkForObjectMember $test_channel Eagle._Tests.Default \
  1077         -            *get_Item*
  1078         -
  1079         -        checkForObjectMember $test_channel Eagle._Tests.Default \
  1080         -            *set_Item*
  1081         -
  1082   1137           #
  1083   1138           # NOTE: For tests "object-3.6" and "object-3.7".
  1084   1139           #
  1085   1140           checkForObjectMember $test_channel Eagle._Tests.Default \
  1086   1141               *TestStringIListReturnValue*
  1087   1142   
  1088   1143           checkForObjectMember $test_channel Eagle._Tests.Default \
................................................................................
  1353   1408           #
  1354   1409           checkForCompileOption $test_channel TEST
  1355   1410         }
  1356   1411       }
  1357   1412     }
  1358   1413   
  1359   1414     #
  1360         -  # NOTE: For test "package-1.0".
  1361         -  #
  1362         -  if {![info exists no(pkgAll.tcl)]} then {
  1363         -    checkForFile $test_channel [file join $base_path Package Tests all.tcl] \
  1364         -        pkgAll.tcl
  1365         -  }
  1366         -
  1367         -  #
  1368         -  # NOTE: For tests "subst-1.*".
  1369         -  #
  1370         -  if {![info exists no(bad_subst.txt)]} then {
  1371         -    checkForFile $test_channel [file join $test_path bad_subst.txt]
  1372         -  }
  1373         -
  1374         -  #
  1375         -  # NOTE: For tests "fileIO-1.*".
  1376         -  #
  1377         -  if {![info exists no(file.dat)]} then {
  1378         -    checkForFile $test_channel [file join $test_path file.dat]
  1379         -  }
  1380         -
  1381         -  #
  1382         -  # NOTE: For test "garbage-1.1".
  1383         -  #
  1384         -  if {![info exists no(garbage.txt)]} then {
  1385         -    checkForFile $test_channel [file join $test_path garbage.txt]
  1386         -  }
  1387         -
  1388         -  #
  1389         -  # NOTE: For tests "xaml-1.*".
  1390         -  #
  1391         -  if {![info exists no(test.png)]} then {
  1392         -    checkForFile $test_channel [file join $test_path test.png]
  1393         -  }
  1394         -
  1395         -  #
  1396         -  # NOTE: For test "socket-1.2".
  1397         -  #
  1398         -  if {![info exists no(client.tcl)]} then {
  1399         -    checkForFile $test_channel [file join $test_path client.tcl]
  1400         -  }
  1401         -
  1402         -  #
  1403         -  # NOTE: For test "tclLoad-1.2".
  1404         -  #
  1405         -  if {![info exists no(tcl_unload.tcl)]} then {
  1406         -    checkForFile $test_channel [file join $test_path tcl_unload.tcl]
  1407         -  }
  1408         -
  1409         -  #
  1410         -  # NOTE: For test "basic-1.4".
  1411         -  #
  1412         -  if {![info exists no(read.eagle)]} then {
  1413         -    checkForFile $test_channel [file join $test_path read.eagle]
  1414         -  }
  1415         -
  1416         -  #
  1417         -  # NOTE: For test "basic-1.5".
  1418         -  #
  1419         -  if {![info exists no(read2.eagle)]} then {
  1420         -    checkForFile $test_channel [file join $test_path read2.eagle]
  1421         -  }
  1422         -
  1423         -  #
  1424         -  # NOTE: For test "basic-1.6".
  1425         -  #
  1426         -  if {![info exists no(read3.eagle)]} then {
  1427         -    checkForFile $test_channel [file join $test_path read3.eagle]
  1428         -  }
  1429         -
  1430         -  #
  1431         -  # NOTE: For test "basic-1.7".
  1432         -  #
  1433         -  if {![info exists no(read4.eagle)]} then {
  1434         -    checkForFile $test_channel [file join $test_path read4.eagle]
  1435         -  }
  1436         -
  1437         -  #
  1438         -  # NOTE: For test "infoScript-1.1".
  1439         -  #
  1440         -  if {![info exists no(script.eagle)]} then {
  1441         -    checkForFile $test_channel [file join $test_path script.eagle]
  1442         -  }
  1443         -
  1444         -  #
  1445         -  # NOTE: For test "basic-1.1".
  1446         -  #
  1447         -  if {![info exists no(source.eagle)]} then {
  1448         -    checkForFile $test_channel [file join $test_path source.eagle]
  1449         -  }
  1450         -
  1451         -  #
  1452         -  # NOTE: For test "basic-1.2".
  1453         -  #
  1454         -  if {![info exists no(unbalanced_brace.eagle)]} then {
  1455         -    checkForFile $test_channel [file join $test_path unbalanced_brace.eagle]
  1456         -  }
  1457         -
  1458         -  #
  1459         -  # NOTE: For test "basic-1.3".
  1460         -  #
  1461         -  if {![info exists no(unbalanced_brace2.eagle)]} then {
  1462         -    checkForFile $test_channel [file join $test_path unbalanced_brace2.eagle]
  1463         -  }
  1464         -
  1465         -  #
  1466         -  # NOTE: For tests "excel-2.*".
  1467         -  #
  1468         -  if {![info exists no(test.xls)]} then {
  1469         -    checkForFile $test_channel [file join $test_path test.xls]
  1470         -  }
  1471         -
  1472         -  #
  1473         -  # NOTE: For test "interp-1.10".
  1474         -  #
  1475         -  if {![info exists no(settings.xml)]} then {
  1476         -    checkForFile $test_channel [file join $test_path settings.xml]
  1477         -  }
  1478         -
  1479         -  #
  1480         -  # NOTE: For tests "load-1.1.*".
  1481         -  #
  1482         -  if {![info exists no(Plugin.dll)]} then {
  1483         -    checkForFile $test_channel [file join $lib_path Plugin1.0 Plugin.dll]
  1484         -  }
  1485         -
  1486         -  #
  1487         -  # NOTE: For test "object-6.1".
  1488         -  #
  1489         -  if {![info exists no(Sample.exe)]} then {
  1490         -    checkForFile $test_channel [file join $bin_path Sample.exe]
  1491         -  }
  1492         -
  1493         -  #
  1494         -  # NOTE: For test "object-4.8".
  1495         -  #
  1496         -  if {![info exists no(EagleCmdlets.dll)]} then {
  1497         -    checkForFile $test_channel [file join $bin_path EagleCmdlets.dll]
  1498         -  }
  1499         -
  1500         -  #
  1501         -  # NOTE: For test "object-4.10".
  1502         -  #
  1503         -  if {![info exists no(EagleExtensions.dll)]} then {
  1504         -    checkForFile $test_channel [file join $bin_path EagleExtensions.dll]
  1505         -  }
  1506         -
  1507         -  #
  1508         -  # NOTE: For test "object-4.10".
  1509         -  #
  1510         -  if {![info exists no(test.wxs)]} then {
  1511         -    checkForFile $test_channel [file join $base_path Installer Tests test.wxs]
  1512         -  }
  1513         -
  1514         -  #
  1515         -  # NOTE: For test "sql-1.2".
  1516         -  #
  1517         -  if {![info exists no(sqlite3.dll)]} then {
  1518         -    checkForFile $test_channel [file join $bin_path sqlite3.dll]
  1519         -  }
  1520         -
  1521         -  if {![info exists no(System.Data.SQLite.dll)]} then {
  1522         -    checkForFile $test_channel [file join $bin_path System.Data.SQLite.dll]
  1523         -  }
  1524         -
  1525         -  if {![info exists no(test.sqlite3)]} then {
  1526         -    checkForFile $test_channel [file join $test_path test.sqlite3]
         1415  +  # NOTE: Has checking for the extra files needed by various tests been
         1416  +  #       disabled?
         1417  +  #
         1418  +  if {![info exists no(checkForFile)]} then {
         1419  +    #
         1420  +    # NOTE: For test "package-1.0".
         1421  +    #
         1422  +    if {![info exists no(pkgAll.tcl)]} then {
         1423  +      checkForFile $test_channel [file join $base_path Package Tests all.tcl] \
         1424  +          pkgAll.tcl
         1425  +    }
         1426  +
         1427  +    #
         1428  +    # NOTE: For tests "subst-1.*".
         1429  +    #
         1430  +    if {![info exists no(bad_subst.txt)]} then {
         1431  +      checkForFile $test_channel [file join $test_path bad_subst.txt]
         1432  +    }
         1433  +
         1434  +    #
         1435  +    # NOTE: For tests "fileIO-1.*".
         1436  +    #
         1437  +    if {![info exists no(file.dat)]} then {
         1438  +      checkForFile $test_channel [file join $test_path file.dat]
         1439  +    }
         1440  +
         1441  +    #
         1442  +    # NOTE: For test "garbage-1.1".
         1443  +    #
         1444  +    if {![info exists no(garbage.txt)]} then {
         1445  +      checkForFile $test_channel [file join $test_path garbage.txt]
         1446  +    }
         1447  +
         1448  +    #
         1449  +    # NOTE: For tests "xaml-1.*".
         1450  +    #
         1451  +    if {![info exists no(test.png)]} then {
         1452  +      checkForFile $test_channel [file join $test_path test.png]
         1453  +    }
         1454  +
         1455  +    #
         1456  +    # NOTE: For test "socket-1.2".
         1457  +    #
         1458  +    if {![info exists no(client.tcl)]} then {
         1459  +      checkForFile $test_channel [file join $test_path client.tcl]
         1460  +    }
         1461  +
         1462  +    #
         1463  +    # NOTE: For test "tclLoad-1.2".
         1464  +    #
         1465  +    if {![info exists no(tcl_unload.tcl)]} then {
         1466  +      checkForFile $test_channel [file join $test_path tcl_unload.tcl]
         1467  +    }
         1468  +
         1469  +    #
         1470  +    # NOTE: For test "basic-1.4".
         1471  +    #
         1472  +    if {![info exists no(read.eagle)]} then {
         1473  +      checkForFile $test_channel [file join $test_path read.eagle]
         1474  +    }
         1475  +
         1476  +    #
         1477  +    # NOTE: For test "basic-1.5".
         1478  +    #
         1479  +    if {![info exists no(read2.eagle)]} then {
         1480  +      checkForFile $test_channel [file join $test_path read2.eagle]
         1481  +    }
         1482  +
         1483  +    #
         1484  +    # NOTE: For test "basic-1.6".
         1485  +    #
         1486  +    if {![info exists no(read3.eagle)]} then {
         1487  +      checkForFile $test_channel [file join $test_path read3.eagle]
         1488  +    }
         1489  +
         1490  +    #
         1491  +    # NOTE: For test "basic-1.7".
         1492  +    #
         1493  +    if {![info exists no(read4.eagle)]} then {
         1494  +      checkForFile $test_channel [file join $test_path read4.eagle]
         1495  +    }
         1496  +
         1497  +    #
         1498  +    # NOTE: For test "infoScript-1.1".
         1499  +    #
         1500  +    if {![info exists no(script.eagle)]} then {
         1501  +      checkForFile $test_channel [file join $test_path script.eagle]
         1502  +    }
         1503  +
         1504  +    #
         1505  +    # NOTE: For test "basic-1.1".
         1506  +    #
         1507  +    if {![info exists no(source.eagle)]} then {
         1508  +      checkForFile $test_channel [file join $test_path source.eagle]
         1509  +    }
         1510  +
         1511  +    #
         1512  +    # NOTE: For test "basic-1.2".
         1513  +    #
         1514  +    if {![info exists no(unbalanced_brace.eagle)]} then {
         1515  +      checkForFile $test_channel [file join $test_path unbalanced_brace.eagle]
         1516  +    }
         1517  +
         1518  +    #
         1519  +    # NOTE: For test "basic-1.3".
         1520  +    #
         1521  +    if {![info exists no(unbalanced_brace2.eagle)]} then {
         1522  +      checkForFile $test_channel [file join $test_path unbalanced_brace2.eagle]
         1523  +    }
         1524  +
         1525  +    #
         1526  +    # NOTE: For tests "excel-2.*".
         1527  +    #
         1528  +    if {![info exists no(test.xls)]} then {
         1529  +      checkForFile $test_channel [file join $test_path test.xls]
         1530  +    }
         1531  +
         1532  +    #
         1533  +    # NOTE: For test "interp-1.10".
         1534  +    #
         1535  +    if {![info exists no(settings.xml)]} then {
         1536  +      checkForFile $test_channel [file join $test_path settings.xml]
         1537  +    }
         1538  +
         1539  +    #
         1540  +    # NOTE: For tests "load-1.1.*".
         1541  +    #
         1542  +    if {![info exists no(Plugin.dll)]} then {
         1543  +      checkForFile $test_channel [file join $lib_path Plugin1.0 Plugin.dll]
         1544  +    }
         1545  +
         1546  +    #
         1547  +    # NOTE: For test "object-6.1".
         1548  +    #
         1549  +    if {![info exists no(Sample.exe)]} then {
         1550  +      checkForFile $test_channel [file join $bin_path Sample.exe]
         1551  +    }
         1552  +
         1553  +    #
         1554  +    # NOTE: For test "object-4.8".
         1555  +    #
         1556  +    if {![info exists no(EagleCmdlets.dll)]} then {
         1557  +      checkForFile $test_channel [file join $bin_path EagleCmdlets.dll]
         1558  +    }
         1559  +
         1560  +    #
         1561  +    # NOTE: For test "object-4.10".
         1562  +    #
         1563  +    if {![info exists no(EagleExtensions.dll)]} then {
         1564  +      checkForFile $test_channel [file join $bin_path EagleExtensions.dll]
         1565  +    }
         1566  +
         1567  +    #
         1568  +    # NOTE: For test "object-4.10".
         1569  +    #
         1570  +    if {![info exists no(test.wxs)]} then {
         1571  +      checkForFile $test_channel [file join $base_path Installer Tests test.wxs]
         1572  +    }
         1573  +
         1574  +    #
         1575  +    # NOTE: For test "sql-1.2".
         1576  +    #
         1577  +    if {![info exists no(sqlite3.dll)]} then {
         1578  +      checkForFile $test_channel [file join $bin_path sqlite3.dll]
         1579  +    }
         1580  +
         1581  +    if {![info exists no(System.Data.SQLite.dll)]} then {
         1582  +      checkForFile $test_channel [file join $bin_path System.Data.SQLite.dll]
         1583  +    }
         1584  +
         1585  +    if {![info exists no(test.sqlite3)]} then {
         1586  +      checkForFile $test_channel [file join $test_path test.sqlite3]
         1587  +    }
  1527   1588     }
  1528   1589   
  1529   1590     #
  1530   1591     # NOTE: Check the core test constraints unless they have been
  1531   1592     #       explicitly disabled.
  1532   1593     #
  1533   1594     if {![info exists no(platform)]} then {

Changes to Tests/basic.eagle.

   180    180   
   181    181           public static void Main()
   182    182           {
   183    183             // do nothing.
   184    184           }
   185    185         }
   186    186       }
   187         -  }] results errors System.Data.SQLite.dll]
          187  +  }] true true true results errors System.Data.SQLite.dll]
   188    188   
   189    189     list $code $results \
   190    190         [expr {[info exists errors] ? $errors : ""}] \
   191    191         [expr {$code eq "Ok" ? [catch {
   192    192           object invoke _Dynamic${id}.Test${id} GetReservedWords
   193    193         } result] : [set result ""]}] $result
   194    194   } -cleanup {
................................................................................
   240    240   
   241    241           public static void Main()
   242    242           {
   243    243             // do nothing.
   244    244           }
   245    245         }
   246    246       }
   247         -  }] results errors System.Data.SQLite.dll]
          247  +  }] true true true results errors System.Data.SQLite.dll]
   248    248   
   249    249     list $code $results \
   250    250         [expr {[info exists errors] ? $errors : ""}] \
   251    251         [expr {$code eq "Ok" ? [catch {
   252    252           set rows [list]
   253    253           set foreignKeys [object invoke _Dynamic${id}.Test${id} GetForeignKeys]
   254    254   
................................................................................
   336    336   
   337    337           public static void Main()
   338    338           {
   339    339             // do nothing.
   340    340           }
   341    341         }
   342    342       }
   343         -  }] results errors System.Data.SQLite.dll]
          343  +  }] true true true results errors System.Data.SQLite.dll]
   344    344   
   345    345     list $code $results \
   346    346         [expr {[info exists errors] ? $errors : ""}] \
   347    347         [expr {$code eq "Ok" ? [catch {
   348    348           set savedCount -1; set savedInterval -1
   349    349   
   350    350           object invoke _Dynamic${id}.Test${id} TestSetAvRetry \
................................................................................
   422    422               {
   423    423                 command.ExecuteNonQuery();
   424    424               }
   425    425             }
   426    426           }
   427    427         }
   428    428       }
   429         -  }] results errors System.Data.SQLite.dll]
          429  +  }] true true true results errors System.Data.SQLite.dll]
   430    430   
   431    431     list $code $results \
   432    432         [expr {[info exists errors] ? $errors : ""}] \
   433    433         [expr {$code eq "Ok" ? [catch {
   434    434           object invoke _Dynamic${id}.Test${id} Main
   435    435         } result] : [set result ""]}] $result \
   436    436         [close [open $dataSource RDONLY 0 "" -share None]]
................................................................................
   483    483                   // do nothing.
   484    484                 }
   485    485               }
   486    486             }
   487    487           }
   488    488         }
   489    489       }
   490         -  }] results errors System.Data.SQLite.dll]
          490  +  }] true true true results errors System.Data.SQLite.dll]
   491    491   
   492    492     list $code $results \
   493    493         [expr {[info exists errors] ? $errors : ""}] \
   494    494         [expr {$code eq "Ok" ? [catch {
   495    495           object invoke _Dynamic${id}.Test${id} Main
   496    496         } result] : [set result ""]}] $result \
   497    497         [close [open $dataSource RDONLY 0 "" -share None]]
................................................................................
   545    545                   // do nothing.
   546    546                 }
   547    547               }
   548    548             }
   549    549           }
   550    550         }
   551    551       }
   552         -  }] results errors System.Data.SQLite.dll]
          552  +  }] true true true results errors System.Data.SQLite.dll]
   553    553   
   554    554     list $code $results \
   555    555         [expr {[info exists errors] ? $errors : ""}] \
   556    556         [expr {$code eq "Ok" ? [catch {
   557    557           object invoke _Dynamic${id}.Test${id} Main
   558    558         } result] : [set result ""]}] $result \
   559    559         [close [open $dataSource RDONLY 0 "" -share None]]
................................................................................
   869    869   
   870    870           public static void Main()
   871    871           {
   872    872             // do nothing.
   873    873           }
   874    874         }
   875    875       }
   876         -  }] results errors System.Data.SQLite.dll]
          876  +  }] true true true results errors System.Data.SQLite.dll]
   877    877   
   878    878     list $code $results \
   879    879         [expr {[info exists errors] ? $errors : ""}] \
   880    880         [expr {$code eq "Ok" ? [catch {
   881    881           object invoke _Dynamic${id}.Test${id} GetConnectionString \
   882    882               null null
   883    883         } result] : [set result ""]}] $result \
................................................................................
   944    944   
   945    945           public static void Main()
   946    946           {
   947    947             // do nothing.
   948    948           }
   949    949         }
   950    950       }
   951         -  }] results errors System.Data.SQLite.dll]
          951  +  }] true true true results errors System.Data.SQLite.dll]
   952    952   
   953    953     lappend results $code [expr {[info exists errors] ? $errors : ""}]
   954    954   
   955    955     if {$code eq "Ok"} then {
   956    956       set keys [list null Version Synchronous UseUTF16Encoding Pooling \
   957    957                      BinaryGUID "Data Source" Uri "Default Timeout" \
   958    958                      Enlist FailIfMissing "Legacy Format" "Read Only" \

Changes to Tests/common.eagle.

   380    380           }
   381    381         }
   382    382   
   383    383         return $result
   384    384       }
   385    385   
   386    386       proc compileCSharpWith {
   387         -            text resultsVarName errorsVarName fileNames args } {
          387  +            text memory symbols strict resultsVarName errorsVarName fileNames
          388  +            args } {
   388    389         #
   389    390         # NOTE: Create the base command to evaluate and add the property settings
   390    391         #       that are almost always needed by our unit tests (i.e. the System
   391    392         #       and System.Data assembly references).
   392    393         #
   393         -      set command [list compileCSharp $text results errors \
   394         -          ReferencedAssemblies.Add System.dll ReferencedAssemblies.Add \
          394  +      set command [list compileCSharp $text $memory $symbols $strict results \
          395  +          errors ReferencedAssemblies.Add System.dll ReferencedAssemblies.Add \
   395    396             System.Data.dll ReferencedAssemblies.Add System.Xml.dll]
   396    397   
   397    398         #
   398    399         # NOTE: Add all the provided file names as assembly references.
   399    400         #
   400    401         foreach fileName $fileNames {
   401    402           lappend command ReferencedAssemblies.Add [getBinaryFileName $fileName]

Changes to Tests/tkt-201128cc88.eagle.

    64     64   
    65     65           public static void Main()
    66     66           {
    67     67             SQLiteFunction.RegisterFunction(typeof(Test${id}));
    68     68           }
    69     69         }
    70     70       }
    71         -  }] results errors System.Data.SQLite.dll]
           71  +  }] true true true results errors System.Data.SQLite.dll]
    72     72   
    73     73     #
    74     74     # NOTE: Compile the C# code (above) to register the custom SQLite function
    75     75     #       and then open the database for this test case and attempt to execute
    76     76     #       the function.  Normally, we would open the database in the test setup
    77     77     #       phase; however, that will not work correctly because newly registered
    78     78     #       functions are only picked up and used by databases opened after they

Changes to Tests/tkt-343d392b51.eagle.

   169    169                   dataAdapter.Update(dataTable); // DBConcurrencyException (?)
   170    170                 }
   171    171               }
   172    172             }
   173    173           }
   174    174         }
   175    175       }
   176         -  }] results errors System.Data.SQLite.dll]
          176  +  }] true true true results errors System.Data.SQLite.dll]
   177    177   
   178    178     list $code $results \
   179    179         [expr {[info exists errors] ? $errors : ""}] \
   180    180         [expr {$code eq "Ok" ? [catch {
   181    181           object invoke _Dynamic${id}.Test${id} Main
   182    182         } result] : [set result ""]}] $result
   183    183   } -cleanup {
................................................................................
   275    275                   dataAdapter.Update(dataTable); // DBConcurrencyException (?)
   276    276                 }
   277    277               }
   278    278             }
   279    279           }
   280    280         }
   281    281       }
   282         -  }] results errors System.Data.SQLite.dll]
          282  +  }] true true true results errors System.Data.SQLite.dll]
   283    283   
   284    284     list $code $results \
   285    285         [expr {[info exists errors] ? $errors : ""}] \
   286    286         [expr {$code eq "Ok" ? [catch {
   287    287           object invoke _Dynamic${id}.Test${id} Main
   288    288         } result] : [set result ""]}] $result
   289    289   } -cleanup {
................................................................................
   413    413                   dataAdapter.Update(dataTable); // DBConcurrencyException (?)
   414    414                 }
   415    415               }
   416    416             }
   417    417           }
   418    418         }
   419    419       }
   420         -  }] results errors System.Data.SQLite.dll]
          420  +  }] true true true results errors System.Data.SQLite.dll]
   421    421   
   422    422     list $code $results \
   423    423         [expr {[info exists errors] ? $errors : ""}] \
   424    424         [expr {$code eq "Ok" ? [catch {
   425    425           object invoke _Dynamic${id}.Test${id} Main
   426    426         } result] : [set result ""]}] $result
   427    427   } -cleanup {

Changes to Tests/tkt-7e3fa93744.eagle.

   113    113                   return dataTable.Rows.Count;
   114    114                 }
   115    115               }
   116    116             }
   117    117           }
   118    118         }
   119    119       }
   120         -  }] results errors System.Data.SQLite.dll]
          120  +  }] true true true results errors System.Data.SQLite.dll]
   121    121   
   122    122     list $code $results \
   123    123         [expr {[info exists errors] ? $errors : ""}] \
   124    124         [expr {$code eq "Ok" ? [catch {
   125    125           object invoke _Dynamic${id}.Test${id} Main
   126    126         } result] : [set result ""]}] $result
   127    127   } -cleanup {

Changes to Tests/tkt-e1b2e0f769.eagle.

    99     99                 connection.Open();
   100    100   
   101    101                 return Tkt_e1b2e0f769(connection).Count;
   102    102               }
   103    103             }
   104    104           }
   105    105         }
   106         -    }] results errors System.Data.SQLite.dll]
          106  +    }] true true true results errors System.Data.SQLite.dll]
   107    107   
   108    108       lappend result1 $code $results \
   109    109           [expr {[info exists errors] ? $errors : ""}] \
   110    110           [expr {$code eq "Ok" ? [catch {
   111    111             object invoke _Dynamic${id}.Test${id} Main
   112    112           } result2] : [set result2 ""]}] $result2
   113    113     }

Changes to Tests/tkt-e30b820248.eagle.

    92     92   
    93     93               Trace.WriteLine("---- END TRACE \\"${name}\\"");
    94     94               Trace.Listeners.Remove(listener);
    95     95             }
    96     96           }
    97     97         }
    98     98       }
    99         -  }] results errors System.Data.SQLite.dll]
           99  +  }] true true true results errors System.Data.SQLite.dll]
   100    100   
   101    101     list $code $results \
   102    102         [expr {[info exists errors] ? $errors : ""}] \
   103    103         [expr {$code eq "Ok" ? [catch {
   104    104           object invoke _Dynamic${id}.Test${id} Main
   105    105         } result] : [set result ""]}] $result \
   106    106         [reportSQLiteResources $test_channel true]
................................................................................
   239    239   
   240    240                 Trace.WriteLine("---- END TRACE \\"${name}\\"");
   241    241                 Trace.Listeners.Remove(listener);
   242    242               }
   243    243             }
   244    244           }
   245    245         }
   246         -    }] results errors System.Data.SQLite.dll]
          246  +    }] true true true results errors System.Data.SQLite.dll]
   247    247   
   248    248       list $code $results \
   249    249           [expr {[info exists errors] ? $errors : ""}] \
   250    250           [expr {$code eq "Ok" ? [catch {
   251    251             object invoke _Dynamic${id}.Test${id} Main
   252    252           } result] : [set result ""]}] $result \
   253    253           [reportSQLiteResources $test_channel true]