Version History
-1.0.84.0 - January 9, 2013
--
-
- Updated to SQLite 3.7.15.2. -
- Explicitly dispose of all SQLiteCommand objects managed by the DbDataAdapter class. Fix for [6434e23a0f]. -
- Add Cancel method to the SQLiteConnection class to interrupt a long running query. -
- Improve thread safety of the SQLiteLog.LogMessage method. -
1.0.83.0 - December 29, 2012
--
-
- Updated to SQLite 3.7.15.1. +
- Updated to SQLite 3.7.15.
- Add Visual Studio 2012 support to all the applicable solution/project files, their associated supporting files, and the test suite.
- Add Visual Studio 2012 support to the redesigned designer support installer.
- Allow opened connections to skip adding the extension functions included in the interop assembly via the new NoExtensionFunctions connection flag.
- Support loading of SQLite extensions via the new EnableExtensions and LoadExtension methods of the SQLiteConnection class. Pursuant to [17045010df]. -
- Remove one set of surrounding single or double quotes from property names and values parsed from the connection string. Fix for [b4cc611998]. -
- Modify parsing of connection strings to allow property names and values to be quoted. ** Potentially Incompatible Change ** -
- Add ParseViaFramework property to the SQLiteConnection class to allow the built-in (i.e. framework provided) connection string parser to be used when opening a connection. Pursuant to [b4cc611998].
- Add notifications before and after any connection is opened and closed, as well as other related notifications, via the new static Changed event.
- Add an overload of the SQLiteLog.LogMessage method that takes a single string parameter.
- Add an overload of the SQLiteConnection.LogMessage method that takes a SQLiteErrorCode parameter.
- All applicable calls into the SQLite core library now return a SQLiteErrorCode instead of an integer error code.
- Make sure the error code of the SQLiteException class gets serialized. @@ -71,19 +61,15 @@
- The public constructor for the SQLiteException now takes a SQLiteErrorCode instead of an integer error code. ** Potentially Incompatible Change **
- The ErrorCode property of the SQLiteException is now an Int32, to allow the property inherited from the base class to be properly overridden. ** Potentially Incompatible Change **
- The ErrorCode field of the LogEventArgs is now an object instead of an integer. ** Potentially Incompatible Change **
- The names and messages associated with the SQLiteErrorCode enumeration values have been normalized to match those in the SQLite core library. ** Potentially Incompatible Change **
- Implement more robust locking semantics for the CriticalHandle derived classes when compiled for the .NET Compact Framework. -
- Cache column indexes as they are looked up when using the SQLiteDataReader to improve performance. +
- Cache column indexes are they are looked up when using the SQLiteDataReader to improve performance.
- Prevent the SQLiteConnection.Close method from throwing non-fatal exceptions during its disposal.
- Rename the interop assembly functions sqlite3_cursor_rowid, sqlite3_context_collcompare, sqlite3_context_collseq, sqlite3_cursor_rowid, and sqlite3_table_cursor to include an "_interop" suffix. ** Potentially Incompatible Change **
- Prevent the LastInsertRowId, MemoryUsed, and MemoryHighwater connection properties from throwing NotSupportedException when running on the .NET Compact Framework. Fix for [dd45aba387]. -
- Improve automatic detection of the sqlite3_close_v2 function when compiled to use the standard SQLite library.
- Add protection against ThreadAbortException asynchronously interrupting native resource initialization and finalization. -
- Add native logging callback for use with the sqlite3_log function to the interop assembly, enabled via the INTEROP_LOG preprocessor definition. -
- Add various diagnostic messages to the interop assembly, enabled via flags in the INTEROP_DEBUG preprocessor definition. -
- Further enhancements to the build and test automation.
- Add test automation for the Windows CE binaries.
- Updated to SQLite 3.7.14. Index: Doc/Extra/welcome.html ================================================================== --- Doc/Extra/welcome.html +++ Doc/Extra/welcome.html @@ -158,11 +158,11 @@
- [[SQLITE_FCNTL_BUSYHANDLER]] ** ^This file-control may be invoked by SQLite on the database file handle ** shortly after it is opened in order to provide a custom VFS with access ** to the connections busy-handler callback. The argument is of type (void **) @@ -1432,20 +1432,10 @@ ** to a function of type (int (*)(void *)). In order to invoke the connections ** busy-handler, this function should be invoked with the second (void *) in ** the array as the only argument. If it returns non-zero, then the operation ** should be retried. If it returns zero, the custom VFS should abandon the ** current operation. -** -**
- [[SQLITE_FCNTL_TEMPFILENAME]]
-** ^Application can invoke this file-control to have SQLite generate a
-** temporary filename using the same algorithm that is followed to generate
-** temporary filenames for TEMP tables and other internal uses. The
-** argument should be a char** which will be filled with the filename
-** written into memory obtained from [sqlite3_malloc()]. The caller should
-** invoke [sqlite3_free()] on the result to avoid a memory leak.
-**
-**
*/
#define SQLITE_FCNTL_LOCKSTATE 1
#define SQLITE_GET_LOCKPROXYFILE 2
#define SQLITE_SET_LOCKPROXYFILE 3
#define SQLITE_LAST_ERRNO 4
@@ -1458,11 +1448,10 @@
#define SQLITE_FCNTL_OVERWRITE 11
#define SQLITE_FCNTL_VFSNAME 12
#define SQLITE_FCNTL_POWERSAFE_OVERWRITE 13
#define SQLITE_FCNTL_PRAGMA 14
#define SQLITE_FCNTL_BUSYHANDLER 15
-#define SQLITE_FCNTL_TEMPFILENAME 16
/*
** CAPI3REF: Mutex Handle
**
** The mutex module within SQLite defines [sqlite3_mutex] to be an
@@ -2156,11 +2145,11 @@
** database connection is opened. By default, URI handling is globally
** disabled. The default value may be changed by compiling with the
** [SQLITE_USE_URI] symbol defined.
**
** [[SQLITE_CONFIG_COVERING_INDEX_SCAN]]
- SQLITE_CONFIG_COVERING_INDEX_SCAN -**
- This option takes a single integer argument which is interpreted as +**
- This option taks a single integer argument which is interpreted as ** a boolean in order to enable or disable the use of covering indices for ** full table scans in the query optimizer. The default setting is determined ** by the [SQLITE_ALLOW_COVERING_INDEX_SCAN] compile-time option, or is "on" ** if that compile-time option is omitted. ** The ability to disable the use of covering indices for full table scans @@ -2172,26 +2161,10 @@ ** [[SQLITE_CONFIG_PCACHE]] [[SQLITE_CONFIG_GETPCACHE]] **
- SQLITE_CONFIG_PCACHE and SQLITE_CONFIG_GETPCACHE **
- These options are obsolete and should not be used by new code. ** They are retained for backwards compatibility but are now no-ops. ** -** -** [[SQLITE_CONFIG_SQLLOG]] -**
- SQLITE_CONFIG_SQLLOG -**
- This option is only available if sqlite is compiled with the -** SQLITE_ENABLE_SQLLOG pre-processor macro defined. The first argument should -** be a pointer to a function of type void(*)(void*,sqlite3*,const char*, int). -** The second should be of type (void*). The callback is invoked by the library -** in three separate circumstances, identified by the value passed as the -** fourth parameter. If the fourth parameter is 0, then the database connection -** passed as the second argument has just been opened. The third argument -** points to a buffer containing the name of the main database file. If the -** fourth parameter is 1, then the SQL statement that the third parameter -** points to has just been executed. Or, if the fourth parameter is 2, then -** the connection being passed as the second parameter is being closed. The -** third parameter is passed NULL In this case. -** */ #define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ #define SQLITE_CONFIG_MULTITHREAD 2 /* nil */ #define SQLITE_CONFIG_SERIALIZED 3 /* nil */ #define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */ @@ -2209,11 +2182,10 @@ #define SQLITE_CONFIG_LOG 16 /* xFunc, void* */ #define SQLITE_CONFIG_URI 17 /* int */ #define SQLITE_CONFIG_PCACHE2 18 /* sqlite3_pcache_methods2* */ #define SQLITE_CONFIG_GETPCACHE2 19 /* sqlite3_pcache_methods2* */ #define SQLITE_CONFIG_COVERING_INDEX_SCAN 20 /* int */ -#define SQLITE_CONFIG_SQLLOG 21 /* xSqllog, void* */ /* ** CAPI3REF: Database Connection Configuration Options ** ** These constants are the available integer configuration options that @@ -8467,12 +8439,10 @@ SQLITE_PRIVATE void sqlite3BtreeTripAllCursors(Btree*, int); SQLITE_PRIVATE void sqlite3BtreeGetMeta(Btree *pBtree, int idx, u32 *pValue); SQLITE_PRIVATE int sqlite3BtreeUpdateMeta(Btree*, int idx, u32 value); -SQLITE_PRIVATE int sqlite3BtreeNewDb(Btree *p); - /* ** The second parameter to sqlite3BtreeGetMeta or sqlite3BtreeUpdateMeta ** should be one of the following values. The integer values are assigned ** to constants so that the offset of the corresponding field in an ** SQLite database header may be found using the following formula: @@ -8983,11 +8953,11 @@ SQLITE_PRIVATE void sqlite3VdbeUsesBtree(Vdbe*, int); SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetOp(Vdbe*, int); SQLITE_PRIVATE int sqlite3VdbeMakeLabel(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeRunOnlyOnce(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeDelete(Vdbe*); -SQLITE_PRIVATE void sqlite3VdbeClearObject(sqlite3*,Vdbe*); +SQLITE_PRIVATE void sqlite3VdbeDeleteObject(sqlite3*,Vdbe*); SQLITE_PRIVATE void sqlite3VdbeMakeReady(Vdbe*,Parse*); SQLITE_PRIVATE int sqlite3VdbeFinalize(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeResolveLabel(Vdbe*, int); SQLITE_PRIVATE int sqlite3VdbeCurrentAddr(Vdbe*); #ifdef SQLITE_DEBUG @@ -9896,11 +9866,11 @@ int flags; /* Miscellaneous flags. See below */ i64 lastRowid; /* ROWID of most recent insert (see above) */ unsigned int openFlags; /* Flags passed to sqlite3_vfs.xOpen() */ int errCode; /* Most recent error code (SQLITE_*) */ int errMask; /* & result codes with this before returning */ - u16 dbOptFlags; /* Flags to enable/disable optimizations */ + u8 dbOptFlags; /* Flags to enable/disable optimizations */ u8 autoCommit; /* The auto-commit flag. */ u8 temp_store; /* 1: file 2: memory 0: default */ u8 mallocFailed; /* True if we have seen a malloc failure */ u8 dfltLockMode; /* Default locking-mode for attached dbs */ signed char nextAutovac; /* Autovac setting after VACUUM if >=0 */ @@ -10041,12 +10011,11 @@ #define SQLITE_FactorOutConst 0x0008 /* Constant factoring */ #define SQLITE_IdxRealAsInt 0x0010 /* Store REAL as INT in indices */ #define SQLITE_DistinctOpt 0x0020 /* DISTINCT using indexes */ #define SQLITE_CoverIdxScan 0x0040 /* Covering index scans */ #define SQLITE_OrderByIdxJoin 0x0080 /* ORDER BY of joins via index */ -#define SQLITE_SubqCoroutine 0x0100 /* Evaluate subqueries as coroutines */ -#define SQLITE_AllOpts 0xffff /* All optimizations */ +#define SQLITE_AllOpts 0x00ff /* All optimizations */ /* ** Macros for testing whether or not optimizations are enabled or disabled. */ #ifndef SQLITE_OMIT_BUILTIN_TEST @@ -10219,11 +10188,23 @@ /* ** A "Collating Sequence" is defined by an instance of the following ** structure. Conceptually, a collating sequence consists of a name and ** a comparison routine that defines the order of that sequence. ** -** If CollSeq.xCmp is NULL, it means that the +** There may two separate implementations of the collation function, one +** that processes text in UTF-8 encoding (CollSeq.xCmp) and another that +** processes text encoded in UTF-16 (CollSeq.xCmp16), using the machine +** native byte order. When a collation sequence is invoked, SQLite selects +** the version that will require the least expensive encoding +** translations, if any. +** +** The CollSeq.pUser member variable is an extra parameter that passed in +** as the first argument to the UTF-8 comparison function, xCmp. +** CollSeq.pUser16 is the equivalent for the UTF-16 comparison function, +** xCmp16. +** +** If both CollSeq.xCmp and CollSeq.xCmp16 are NULL, it means that the ** collating sequence is undefined. Indices built on an undefined ** collating sequence may not be read or written. */ struct CollSeq { char *zName; /* Name of the collating sequence, UTF-8 encoded */ @@ -10553,24 +10534,24 @@ ** and the value of Index.onError indicate the which conflict resolution ** algorithm to employ whenever an attempt is made to insert a non-unique ** element. */ struct Index { - char *zName; /* Name of this index */ - int *aiColumn; /* Which columns are used by this index. 1st is 0 */ - tRowcnt *aiRowEst; /* From ANALYZE: Est. rows selected by each column */ - Table *pTable; /* The SQL table being indexed */ - char *zColAff; /* String defining the affinity of each column */ - Index *pNext; /* The next index associated with the same table */ - Schema *pSchema; /* Schema containing this index */ - u8 *aSortOrder; /* for each column: True==DESC, False==ASC */ - char **azColl; /* Array of collation sequence names for index */ - int tnum; /* DB Page containing root of this index */ - u16 nColumn; /* Number of columns in table used by this index */ - u8 onError; /* OE_Abort, OE_Ignore, OE_Replace, or OE_None */ - unsigned autoIndex:2; /* 1==UNIQUE, 2==PRIMARY KEY, 0==CREATE INDEX */ - unsigned bUnordered:1; /* Use this index for == or IN queries only */ + char *zName; /* Name of this index */ + int *aiColumn; /* Which columns are used by this index. 1st is 0 */ + tRowcnt *aiRowEst; /* Result of ANALYZE: Est. rows selected by each column */ + Table *pTable; /* The SQL table being indexed */ + char *zColAff; /* String defining the affinity of each column */ + Index *pNext; /* The next index associated with the same table */ + Schema *pSchema; /* Schema containing this index */ + u8 *aSortOrder; /* Array of size Index.nColumn. True==DESC, False==ASC */ + char **azColl; /* Array of collation sequence names for index */ + int nColumn; /* Number of columns in the table used by this index */ + int tnum; /* Page containing root of this index in database file */ + u8 onError; /* OE_Abort, OE_Ignore, OE_Replace, or OE_None */ + u8 autoIndex; /* True if is automatically created (ex: by UNIQUE) */ + u8 bUnordered; /* Use this index for == or IN queries only */ #ifdef SQLITE_ENABLE_STAT3 int nSample; /* Number of elements in aSample[] */ tRowcnt avgEq; /* Average nEq value for key values not in aSample */ IndexSample *aSample; /* Samples of the left-most key */ #endif @@ -10747,10 +10728,11 @@ Expr *pRight; /* Right subnode */ union { ExprList *pList; /* Function arguments or in "
IN ( IN (
1.0.83.0 - December XX, 2012 (release scheduled)
+-
+
1.0.82.0 - September 3, 2012
Distributing the Binaries (Compact Framework)
Both the System.Data.SQLite.DLL and SQLite.Interop.XXX.DLL files must be deployed on the Compact Framework. The XXX is the build number of - the System.Data.SQLite library (e.g. "084"). The + the System.Data.SQLite library (e.g. "083"). The SQLite.Interop.XXX.DLL file is a fully native assembly compiled for the ARM processor, and System.Data.SQLite is the fully-managed Compact Framework assembly.
Index: Doc/SQLite.NET.chm
==================================================================
--- Doc/SQLite.NET.chm
+++ Doc/SQLite.NET.chm
cannot compute difference between binary files
Index: Externals/Eagle/bin/Eagle.dll
==================================================================
--- Externals/Eagle/bin/Eagle.dll
+++ Externals/Eagle/bin/Eagle.dll
cannot compute difference between binary files
Index: Externals/Eagle/bin/EagleShell.exe
==================================================================
--- Externals/Eagle/bin/EagleShell.exe
+++ Externals/Eagle/bin/EagleShell.exe
cannot compute difference between binary files
Index: Externals/Eagle/bin/EagleShell.exe.mda.config
==================================================================
--- Externals/Eagle/bin/EagleShell.exe.mda.config
+++ Externals/Eagle/bin/EagleShell.exe.mda.config
@@ -11,12 +11,11 @@
* RCS: @(#) $Id: $
*
-->
-
+ -->
Index: Externals/Eagle/lib/Eagle1.0/init.eagle
==================================================================
--- Externals/Eagle/lib/Eagle1.0/init.eagle
+++ Externals/Eagle/lib/Eagle1.0/init.eagle
@@ -141,11 +141,11 @@
proc lappendArgs { args } {
#
# NOTE: This should work properly in both Tcl and Eagle.
#
- set result [list]; eval lappend result $args
+ eval lappend result $args
}
proc getDictionaryValue { dictionary name {default ""} {wrap ""} } {
#
# NOTE: Locate the named value we are interested in. The dictionary must
@@ -978,15 +978,10 @@
unset errors; # dispose
return $code
}
- proc matchEnginePublicKeyToken { publicKeyToken } {
- return [expr {[string length $publicKeyToken] == 0 || \
- $publicKeyToken eq [info engine PublicKeyToken]}]
- }
-
proc matchEngineName { name } {
return [expr {[string length $name] == 0 || \
$name eq [info engine Name]}]
}
@@ -1045,28 +1040,47 @@
#
# NOTE: Next, figure out what type of download is being
# requested.
#
switch -exact -nocase -- $type {
- source -
- setup -
+ source {
+ #
+ # NOTE: Source code download. This may be a RAR or an EXE
+ # file. Append the appropriate file name and then
+ # join all the URI components to form the final URI.
+ #
+ set fileName [appendArgs EagleSource $patchLevel $extension]
+ lappend components $fileName
+
+ set result [list [eval uri join $components] \
+ [file join $directory $fileName]]
+ }
+ setup {
+ #
+ # NOTE: Windows setup download. Always append an ".exe"
+ # extension because we never distribute the setup as
+ # a RAR file. Append the appropriate file name and
+ # then join all the URI components to form the final
+ # URI.
+ #
+ set fileName [appendArgs EagleSetup $patchLevel .exe]
+ lappend components $fileName
+
+ set result [list [eval uri join $components] \
+ [file join $directory $fileName]]
+ }
binary {
#
- # NOTE: Source code, setup, or binary download. This may be
- # a RAR or an EXE file. Append the appropriate file
- # name and then join all the URI components to form the
- # final URI.
- #
- set fileName [appendArgs \
- [info engine] [string totitle $type] $patchLevel \
- [expr {[string tolower $type] eq "setup" ? ".exe" : \
- $extension}]]
-
+ # NOTE: Binary file download. This may be a RAR or an EXE
+ # file. Append the appropriate file name and then
+ # join all the URI components to form the final URI.
+ #
+ set fileName [appendArgs EagleBinary $patchLevel $extension]
lappend components $fileName
- set result [list [eval uri join $components] [file join \
- $directory $fileName]]
+ set result [list [eval uri join $components] \
+ [file join $directory $fileName]]
}
}
}
}
}
@@ -1236,11 +1250,11 @@
# version" is on the first line (for a given public key
# token), followed by development builds, experimental
# builds, etc.
#
if {$protocolId eq "1" && \
- [matchEnginePublicKeyToken $publicKeyToken] && \
+ $publicKeyToken eq [info engine PublicKeyToken] && \
[matchEngineName $name] && \
[matchEngineCulture $culture]} then {
#
# NOTE: Grab the patch level field.
#
@@ -1425,15 +1439,15 @@
# HACK: Mono does not currently support calling the String.Format
# overload that takes a variable number of arguments via
# reflection (Mono bug #636939).
#
if {![isMono]} then {
- set line [string format -verbatim -- [appendArgs "\{0,-" \
- $maxLength "\} = {1}"] $nameString $valueString]
+ set line [string format -verbatim -- "{0,-$maxLength} = {1}" \
+ $nameString $valueString]
} else {
- set line [object invoke String Format [appendArgs "\{0,-" \
- $maxLength "\} = {1}"] $nameString $valueString]
+ set line [object invoke String Format "{0,-$maxLength} = {1}" \
+ $nameString $valueString]
}
puts stdout $line
}
}
@@ -1536,60 +1550,37 @@
# NOTE: This should work properly in both Tcl and Eagle.
#
catch {puts stderr $string}
}
- proc makeVariableFast { name fast } {
- #
- # NOTE: This should work properly in Eagle only.
- #
- catch {
- uplevel 1 [list object invoke -flags +NonPublic \
- Interpreter.GetActive MakeVariableFast $name $fast]
- }
- }
-
- proc findDirectories { pattern } {
- #
- # NOTE: Block non-Windows platforms since this is Windows specific.
- #
- if {$::tcl_platform(platform) ne "windows"} then {
- error "not supported on this operating system"
- }
-
- #
- # NOTE: This should work properly in Eagle only.
- #
- set dir ""; set result [list]
-
- #
- # HACK: Optimize the variable access in this procedure to be
- # as fast as possible.
- #
- makeVariableFast dir true; makeVariableFast result true
-
- foreach dir [split [exec -unicode $::env(ComSpec) /u /c dir \
- /ad /b [appendArgs \" [file nativename $pattern] \"]] \n] {
- set dir [string trim $dir]
-
- if {[string length $dir] > 0} then {
- set dir [getDirResultPath $pattern $dir]
-
- if {[lsearch -variable -exact -nocase result $dir] == -1} then {
- lappend result $dir
- }
- }
- }
-
- foreach dir [split [exec -unicode $::env(ComSpec) /u /c dir \
- /ahd /b [appendArgs \" [file nativename $pattern] \"]] \n] {
- set dir [string trim $dir]
-
- if {[string length $dir] > 0} then {
- set dir [getDirResultPath $pattern $dir]
-
- if {[lsearch -variable -exact -nocase result $dir] == -1} then {
+ proc findDirectories { pattern } {
+ #
+ # NOTE: This should work properly in Eagle only.
+ #
+ set result [list]
+
+ foreach dir [split [exec $::env(ComSpec) /c dir /ad /b \
+ [appendArgs \" [file nativename $pattern] \"]] \n] {
+ set dir [string trim $dir]
+
+ if {[string length $dir] > 0} then {
+ set dir [getDirResultPath $pattern $dir]
+
+ if {[lsearch -exact -nocase $result $dir] == -1} then {
+ lappend result $dir
+ }
+ }
+ }
+
+ foreach dir [split [exec $::env(ComSpec) /c dir /ahd /b \
+ [appendArgs \" [file nativename $pattern] \"]] \n] {
+ set dir [string trim $dir]
+
+ if {[string length $dir] > 0} then {
+ set dir [getDirResultPath $pattern $dir]
+
+ if {[lsearch -exact -nocase $result $dir] == -1} then {
lappend result $dir
}
}
}
@@ -1596,48 +1587,35 @@
return $result
}
proc findFiles { pattern } {
#
- # NOTE: Block non-Windows platforms since this is Windows specific.
- #
- if {$::tcl_platform(platform) ne "windows"} then {
- error "not supported on this operating system"
- }
-
- #
- # NOTE: This should work properly in Eagle only.
- #
- set fileName ""; set result [list]
-
- #
- # HACK: Optimize the variable access in this procedure to be
- # as fast as possible.
- #
- makeVariableFast fileName true; makeVariableFast result true
-
- foreach fileName [split [exec -unicode $::env(ComSpec) /u /c dir \
- /a-d /b [appendArgs \" [file nativename $pattern] \"]] \n] {
- set fileName [string trim $fileName]
-
- if {[string length $fileName] > 0} then {
- set fileName [getDirResultPath $pattern $fileName]
-
- if {[lsearch -variable -exact -nocase result $fileName] == -1} then {
- lappend result $fileName
- }
- }
- }
-
- foreach fileName [split [exec -unicode $::env(ComSpec) /u /c dir \
- /ah-d /b [appendArgs \" [file nativename $pattern] \"]] \n] {
- set fileName [string trim $fileName]
-
- if {[string length $fileName] > 0} then {
- set fileName [getDirResultPath $pattern $fileName]
-
- if {[lsearch -variable -exact -nocase result $fileName] == -1} then {
+ # NOTE: This should work properly in Eagle only.
+ #
+ set result [list]
+
+ foreach fileName [split [exec $::env(ComSpec) /c dir /a-d /b \
+ [appendArgs \" [file nativename $pattern] \"]] \n] {
+ set fileName [string trim $fileName]
+
+ if {[string length $fileName] > 0} then {
+ set fileName [getDirResultPath $pattern $fileName]
+
+ if {[lsearch -exact -nocase $result $fileName] == -1} then {
+ lappend result $fileName
+ }
+ }
+ }
+
+ foreach fileName [split [exec $::env(ComSpec) /c dir /ah-d /b \
+ [appendArgs \" [file nativename $pattern] \"]] \n] {
+ set fileName [string trim $fileName]
+
+ if {[string length $fileName] > 0} then {
+ set fileName [getDirResultPath $pattern $fileName]
+
+ if {[lsearch -exact -nocase $result $fileName] == -1} then {
lappend result $fileName
}
}
}
@@ -1644,48 +1622,35 @@
return $result
}
proc findFilesRecursive { pattern } {
#
- # NOTE: Block non-Windows platforms since this is Windows specific.
- #
- if {$::tcl_platform(platform) ne "windows"} then {
- error "not supported on this operating system"
- }
-
- #
- # NOTE: This should work properly in Eagle only.
- #
- set fileName ""; set result [list]
-
- #
- # HACK: Optimize the variable access in this procedure to be
- # as fast as possible.
- #
- makeVariableFast fileName true; makeVariableFast result true
-
- foreach fileName [split [exec -unicode $::env(ComSpec) /u /c dir \
- /a-d /s /b [appendArgs \" [file nativename $pattern] \"]] \n] {
- set fileName [string trim $fileName]
-
- if {[string length $fileName] > 0} then {
- set fileName [getDirResultPath $pattern $fileName]
-
- if {[lsearch -variable -exact -nocase result $fileName] == -1} then {
- lappend result $fileName
- }
- }
- }
-
- foreach fileName [split [exec -unicode $::env(ComSpec) /u /c dir \
- /ah-d /s /b [appendArgs \" [file nativename $pattern] \"]] \n] {
- set fileName [string trim $fileName]
-
- if {[string length $fileName] > 0} then {
- set fileName [getDirResultPath $pattern $fileName]
-
- if {[lsearch -variable -exact -nocase result $fileName] == -1} then {
+ # NOTE: This should work properly in Eagle only.
+ #
+ set result [list]
+
+ foreach fileName [split [exec $::env(ComSpec) /c dir /a-d /s /b \
+ [appendArgs \" [file nativename $pattern] \"]] \n] {
+ set fileName [string trim $fileName]
+
+ if {[string length $fileName] > 0} then {
+ set fileName [getDirResultPath $pattern $fileName]
+
+ if {[lsearch -exact -nocase $result $fileName] == -1} then {
+ lappend result $fileName
+ }
+ }
+ }
+
+ foreach fileName [split [exec $::env(ComSpec) /c dir /ah-d /s /b \
+ [appendArgs \" [file nativename $pattern] \"]] \n] {
+ set fileName [string trim $fileName]
+
+ if {[string length $fileName] > 0} then {
+ set fileName [getDirResultPath $pattern $fileName]
+
+ if {[lsearch -exact -nocase $result $fileName] == -1} then {
lappend result $fileName
}
}
}
@@ -1739,17 +1704,10 @@
return $result
}
proc findFilesRecursive { pattern } {
- #
- # NOTE: Block non-Windows platforms since this is Windows specific.
- #
- if {$::tcl_platform(platform) ne "windows"} then {
- error "not supported on this operating system"
- }
-
#
# NOTE: This should work properly in Tcl only.
#
set result [list]
@@ -1833,19 +1791,14 @@
#
# NOTE: Exports the necessary commands from this package and import them
# into the global namespace.
#
exportAndImportPackageCommands [namespace current] [list \
- isEagle haveGaruda isMono getEnvironmentVariable combineFlags \
- getCompileInfo getPlatformInfo getPluginPath appendArgs lappendArgs \
- getDictionaryValue getColumnValue getRowColumnValue tqputs tqlog \
- readFile readSharedFile writeFile appendFile appendLogFile \
- appendSharedFile appendSharedLogFile readAsciiFile writeAsciiFile \
- readUnicodeFile writeUnicodeFile getDirResultPath addToPath \
- removeFromPath execShell ldifference filter map reduce \
- getLengthModifier debug findDirectories findFiles findFilesRecursive \
- exportAndImportPackageCommands] false false
+ exportAndImportPackageCommands isEagle isMono getEnvironmentVariable \
+ getPluginPath getDictionaryValue getColumnValue getRowColumnValue \
+ appendArgs haveGaruda lappendArgs readFile filter map reduce \
+ getPlatformInfo execShell combineFlags tqputs tqlog] false false
###########################################################################
############################## END Tcl ONLY ###############################
###########################################################################
}
Index: Externals/Eagle/lib/Eagle1.0/test.eagle
==================================================================
--- Externals/Eagle/lib/Eagle1.0/test.eagle
+++ Externals/Eagle/lib/Eagle1.0/test.eagle
@@ -297,18 +297,18 @@
# NOTE: Calculate how many whole seconds we need to spin for.
#
set seconds [expr {$milliseconds / 1000}]
#
- # NOTE: Calculate the starting and ending values of [clock seconds].
+ # NOTE: Calculate the value of [clock seconds] now and at the stop time.
#
- set now [clock seconds]; set start $now; set stop [expr {$now + $seconds}]
+ set start [clock seconds]; set stop [expr {$start + $seconds}]
#
# NOTE: Do nothing for X seconds (i.e. except call [clock seconds]).
#
- while {$start <= $now && $now < $stop} {set now [clock seconds]}
+ while {$start <= [clock seconds] && [clock seconds] < $stop} {}
#
# NOTE: Record the final Tcl command count.
#
set after [info cmdcount]
@@ -387,11 +387,11 @@
#
# TODO: Add more support for standard tcltest options here.
#
set options [list -configuration -constraints -exitOnComplete -file \
-logFile -match -no -notFile -postTest -preTest -skip -stopOnFailure \
- -suffix -tclsh -threshold]
+ -suffix -threshold]
foreach {name value} $args {
#
# NOTE: Use the [tqputs] command here just in case the test log file
# has not been setup yet (i.e. by default, this procedure is
@@ -416,37 +416,10 @@
# NOTE: Now, attempt to flush the test log queue, if available.
#
tlog ""
}
- proc getTclShellFileName {} {
- #
- # NOTE: Check the environment variables we know about that
- # may contain the path where the Tcl shell is located.
- #
- foreach name [list Eagle_Tcl_Shell Tcl_Shell] {
- set value [getEnvironmentVariable $name]
-
- #
- # TODO: Possibly add a check if the file actually exists
- # here.
- #
- if {[string length $value] > 0} then {
- #
- # NOTE: *EXTERNAL* Return verbatim, no normalization.
- #
- return $value
- }
- }
-
- #
- # NOTE: None of the environment variables returned anything
- # valid, return the fallback default.
- #
- return tclsh
- }
-
proc getTemporaryPath {} {
#
# NOTE: Build the list of "temporary directory" override
# environment variables to check.
#
@@ -704,11 +677,11 @@
switch [llength $args] {
1 {
#
# NOTE: Only the string to be printed is specified (stdout).
#
- return [tputs $::test_channel [appendArgs [lindex $args 0] \n]]
+ return [tputs $::test_channel [lindex $args 0]]
}
2 {
#
# NOTE: Either -nonewline or channelId has been specified.
#
@@ -949,16 +922,16 @@
tputs $channel [appendArgs "==== \"" $fileName "\" LEAKED " \
$statistic \n]
if {[info exists array($statistic,before,list)]} then {
tputs $channel [appendArgs "---- " $statistic " BEFORE: " \
- [formatList $array($statistic,before,list)] \n]
+ $array($statistic,before,list) \n]
}
if {[info exists array($statistic,after,list)]} then {
tputs $channel [appendArgs "---- " $statistic " AFTER: " \
- [formatList $array($statistic,after,list)] \n]
+ $array($statistic,after,list) \n]
}
}
}
#
@@ -1116,14 +1089,14 @@
# have been displayed by the caller (or anybody else).
#
tputs $channel [appendArgs "---- test run path: \"" $path \"\n]
tputs $channel [appendArgs "---- test run file names: " \
- [formatList [removePathFromFileNames $path $fileNames]] \n]
+ [list [removePathFromFileNames $path $fileNames]] \n]
tputs $channel [appendArgs "---- test run skip file names: " \
- [formatList $skipFileNames] \n]
+ [list $skipFileNames] \n]
#
# NOTE: Keep going unless this becomes true (i.e. if one of the
# test files signals us to stop).
#
@@ -1318,16 +1291,10 @@
# output diagnostics as necessary if they have.
#
reportTestStatistics $channel $fileName leaks leaked
}
} else {
- #
- # NOTE: This entire file has been skipped. Record that fact in the
- # test suite log file.
- #
- tputs $channel [appendArgs "==== \"" $fileName "\" NON_TEST_FILE\n"]
-
#
# NOTE: This file does not actually count towards the total (i.e.
# it contains no actual tests).
#
incr total -1
@@ -1353,16 +1320,10 @@
#
if {$stop} then {
break
}
} else {
- #
- # NOTE: This entire file has been skipped. Record that fact in the
- # test suite log file.
- #
- tputs $channel [appendArgs "==== \"" $fileName "\" SKIPPED\n"]
-
#
# NOTE: This file does not actually count towards the total (i.e.
# it is part of the test suite infrastructure).
#
incr total -1
@@ -1393,17 +1354,15 @@
#
# NOTE: Show the files that had failing and/or leaking tests.
#
if {[llength $failed] > 0} then {
- tputs $channel [appendArgs "---- files with failing tests: " \
- [formatList $failed] \n]
+ tputs $channel [appendArgs "---- files with failing tests: " $failed \n]
}
if {[llength $leaked] > 0} then {
- tputs $channel [appendArgs "---- files with leaking tests: " \
- [formatList $leaked] \n]
+ tputs $channel [appendArgs "---- files with leaking tests: " $leaked \n]
}
}
proc configureTcltest { constraints imports force } {
if {[isEagle]} then {
@@ -1756,16 +1715,10 @@
catch {file delete $fileName}
}
}
}
- proc getCommandsForTclShell {} {
- return [testExecTclScript {
- puts -nonewline stdout [info commands]
- }]
- }
-
proc getMachineForTclShell {} {
return [testExecTclScript {
puts -nonewline stdout $tcl_platform(machine)
}]
}
@@ -1774,93 +1727,37 @@
return [testExecTclScript {
puts -nonewline stdout [package require Tk]; exit
}]
}
- proc getTestConfiguration {} {
- #
- # NOTE: Determine the effective test configuration and return it. If
- # the test configuration cannot be determined, return an empty
- # string.
- #
- if {[info exists ::test_flags(-configuration)] && \
- [string length $::test_flags(-configuration)] > 0} then {
- #
- # NOTE: The test configuration has been manually overridden via the
- # test flags; therefore, use it.
- #
- return $::test_flags(-configuration)
- } elseif {[info exists ::test_configuration]} then {
- #
- # NOTE: Use the test configuration. The default value is "Release",
- # as set by the test suite prologue; however, this may have
- # been overridden.
- #
- return $::test_configuration
- } elseif {[info exists ::eagle_platform(configuration)]} then {
- #
- # NOTE: Use the build configuration of Eagle itself. This value will
- # always be "Debug" or "Release".
- #
- return $::eagle_platform(configuration)
- } else {
- #
- # NOTE: We are missing the configuration, return nothing.
- #
- return ""
- }
- }
-
- proc getTestSuffix {} {
- #
- # NOTE: Determine the effective test suffix and return it. If
- # the test suffix cannot be determined, return an empty
- # string.
- #
- if {[info exists ::test_flags(-suffix)] && \
- [string length $::test_flags(-suffix)] > 0} then {
- #
- # NOTE: The test suffix has been manually overridden via the
- # test flags; therefore, use it.
- #
- return $::test_flags(-suffix)
- } elseif {[info exists ::test_suffix]} then {
- #
- # NOTE: Use the test suffix. There is no default value for
- # this variable (i.e. by default, it does not exist).
- #
- return $::test_suffix
- } elseif {[info exists ::eagle_platform(text)]} then {
- #
- # NOTE: Use the build text of Eagle itself. This value will
- # typically be "NetFx20" or "NetFx40".
- #
- return $::eagle_platform(text)
- } else {
- #
- # NOTE: We are missing the suffix, return nothing.
- #
- return ""
- }
- }
-
proc getGarudaDll {} {
#
# NOTE: Get the Garuda DLL of the same platform (i.e. machine type)
# as the native Tcl shell.
#
if {[info exists ::base_path]} then {
#
- # NOTE: Get the effective test configuration.
- #
- set configuration [getTestConfiguration]
-
- #
- # NOTE: If there is no effective test configuration available, we
- # cannot continue.
- #
- if {[string length $configuration] == 0} then {
+ # NOTE: If the test configuration is available, use it. Failing that,
+ # use the build configuration of Eagle itself.
+ #
+ if {[info exists ::test_configuration]} then {
+ #
+ # NOTE: Use the test configuration. The default value is "Release",
+ # as set by the test suite prologue; however, this may have
+ # been overridden.
+ #
+ set configuration $::test_configuration
+ } elseif {[info exists ::eagle_platform(configuration)]} then {
+ #
+ # NOTE: Use the build configuration of Eagle itself. This value will
+ # always be "Debug" or "Release".
+ #
+ set configuration $::eagle_platform(configuration)
+ } else {
+ #
+ # NOTE: We are missing the configuration, return nothing.
+ #
return ""
}
#
# NOTE: Build the full path and file name of the Garuda DLL, using
@@ -2072,12 +1969,12 @@
processTestArguments getTemporaryPath getTestLog getTestLogId getFiles \
getConstraints getTestFiles getTestRunId execTestShell runTestPrologue \
runTestEpilogue runTest runAllTests fixConstraints sourceIfValid \
isExitOnComplete getPassPercentage getSkipPercentage testExec tlog \
returnInfoScript tputs formatDecimal formatList configureTcltest \
- calculateBogoCops removeConstraint machineToPlatform tsource testShim \
- getTestConfiguration getTestSuffix getTclShellFileName] false false
+ calculateBogoCops removeConstraint machineToPlatform tsource testShim] \
+ false false
###########################################################################
############################## END Tcl ONLY ###############################
###########################################################################
}
Index: Externals/Eagle/lib/Eagle1.0/vendor.eagle
==================================================================
--- Externals/Eagle/lib/Eagle1.0/vendor.eagle
+++ Externals/Eagle/lib/Eagle1.0/vendor.eagle
@@ -42,15 +42,12 @@
}
incr result
if {!$quiet} then {
- catch {
- tqputs $channel [appendArgs \
- "---- found vendor-specific test override \"" $varName \
- "\" with value \"" [uplevel 1 [list set $varName]] \"\n]
- }
+ tqputs $channel [appendArgs \
+ "---- found vendor-specific test override \"" $varName "\".\n"]
}
}
#
# NOTE: Keep track of the list of test override variables, for later
@@ -110,15 +107,13 @@
[lsearch -exact $::env(EAGLELIBPATH) $dir2] == -1} then {
#
# NOTE: If we have NOT been instructed to be quiet, report now.
#
if {!$quiet} then {
- catch {
- tqputs $channel [appendArgs \
- "---- found vendor-specific test package directory \"" \
- $dir2 "\", adding...\n"]
- }
+ tqputs $channel [appendArgs \
+ "---- found vendor-specific test package directory \"" \
+ $dir2 "\", adding...\n"]
}
#
# NOTE: Append the directory to the necessary environment variable
# so that it will get picked up when Eagle actually rebuilds
@@ -147,14 +142,12 @@
#
# NOTE: If we have NOT been instructed to be quiet, report now.
#
if {!$quiet} then {
- catch {
- tqputs $channel \
- "---- could not find vendor-specific test package directory\n"
- }
+ tqputs $channel \
+ "---- could not find vendor-specific test package directory.\n"
}
#
# NOTE: Directory not found, return failure.
#
@@ -167,14 +160,12 @@
if {$dir ne $testPath} then {
object invoke -flags +NonPublic Interpreter.GetActive TestPath $dir
if {!$quiet} then {
- catch {
- tqputs $channel [appendArgs \
- "---- set interpreter test path to \"" $dir \"\n]
- }
+ tqputs $channel [appendArgs \
+ "---- set interpreter test path to \"" $dir \".\n]
}
}
}
#
@@ -183,12 +174,12 @@
#
checkForTestOverrides stdout [expr {[info exists test_overrides] ? \
$test_overrides : [list binary_directory build_base_directory \
build_directory common_directory connection_flags database_directory \
datetime_format scratch_directory temporary_directory \
- test_configuration test_constraints test_overrides test_year \
- test_year_clr_v2 test_year_clr_v4 vendor_directory]}] false
+ test_configuration test_overrides test_year test_year_clr_v2 \
+ test_year_clr_v4 vendor_directory]}] false
#
# NOTE: This variable will contain the name of the directory containing the
# vendor-specific testing infrastructure. If the variable does not
# already exist, create it; otherwise, it has been overridden and the
Index: Externals/Eagle/lib/Test1.0/constraints.eagle
==================================================================
--- Externals/Eagle/lib/Test1.0/constraints.eagle
+++ Externals/Eagle/lib/Test1.0/constraints.eagle
@@ -26,11 +26,11 @@
if {[info exists ::tcl_platform(platform)]} then {
addConstraint $::tcl_platform(platform)
tputs $channel [appendArgs $::tcl_platform(platform) \n]
} else {
- tputs $channel unknown\n
+ tputs $channel [appendArgs unknown \n]
}
###########################################################################
if {![isEagle]} then {
@@ -59,56 +59,10 @@
}
}
}
}
- proc checkForScriptLibrary { channel } {
- tputs $channel "---- checking for script library... "
-
- #
- # NOTE: See if the variable containing the script library location
- # exists.
- #
- if {[info exists ::tcl_library] && \
- [string length $::tcl_library] > 0} then {
- #
- # NOTE: Now see if the script library is external or embedded.
- #
- if {[file isdirectory $::tcl_library]} then {
- #
- # NOTE: Yes, it appears to be a directory name, which should
- # mean that the necessary files are physically contained
- # within it.
- #
- addConstraint tcl_library_external
-
- tputs $channel "yes (external)\n"
-
- #
- # NOTE: We are done here, return now.
- #
- return
- } elseif {[file isfile $::tcl_library]} then {
- #
- # NOTE: Yes, it appears to be a file name, which should mean
- # that the necessary files are physically embedded within
- # it.
- #
- addConstraint tcl_library_embedded
-
- tputs $channel "yes (embedded)\n"
-
- #
- # NOTE: We are done here, return now.
- #
- return
- }
- }
-
- tputs $channel no\n
- }
-
proc checkForVariable { channel name {notEmpty true} {constraint ""} } {
tputs $channel [appendArgs "---- checking for variable \"" $name \
"\"... "]
#
@@ -596,32 +550,19 @@
tputs $channel no\n
}
}
proc checkForTestConfiguration { channel } {
- tputs $channel "---- checking for test configuration... "
+ tputs $channel [appendArgs "---- checking for test configuration... "]
if {[info exists ::test_configuration] && \
[string length $::test_configuration] > 0} then {
addConstraint [appendArgs configuration. $::test_configuration]
tputs $channel [appendArgs $::test_configuration \n]
} else {
- tputs $channel unknown\n
- }
- }
-
- proc checkForTestSuffix { channel } {
- tputs $channel "---- checking for test suffix... "
-
- if {[info exists ::test_suffix] && \
- [string length $::test_suffix] > 0} then {
- addConstraint [appendArgs suffix. $::test_suffix]
-
- tputs $channel [appendArgs $::test_suffix \n]
- } else {
- tputs $channel unknown\n
+ tputs $channel [appendArgs unknown \n]
}
}
proc checkForFile { channel name {constraint ""} } {
tputs $channel [appendArgs "---- checking for file \"" $name \
@@ -833,27 +774,10 @@
} else {
tputs $channel no\n
}
}
- proc checkForTip405 { channel } {
- tputs $channel "---- checking for TIP #405... "
-
- #
- # NOTE: Does the interpreter have TIP #405 (i.e. [lmap])?
- #
- catch {lmap} error
-
- if {$error ne "invalid command name \"lmap\""} then {
- addConstraint tip405
-
- tputs $channel yes\n
- } else {
- tputs $channel no\n
- }
- }
-
proc checkForTiming {
channel threshold {constraint ""} {tries 1} {delay 1000}
{asynchronous false} } {
tputs $channel [appendArgs \
"---- checking for precision timing (threshold of " $threshold \
@@ -942,25 +866,10 @@
} else {
tputs $channel no\n
}
}
- proc checkForStackIntensive { channel } {
- tputs $channel "---- checking for stack intensive testing... "
-
- #
- # NOTE: Are we allowed to do stack intensive testing?
- #
- if {![info exists ::no(stackIntensive)]} then {
- addConstraint stackIntensive
-
- tputs $channel yes\n
- } else {
- tputs $channel no\n
- }
- }
-
proc checkForInteractive { channel } {
tputs $channel "---- checking for interactive user... "
#
# NOTE: Is there an interactive user?
@@ -972,41 +881,10 @@
} else {
tputs $channel no\n
}
}
- proc checkForInteractiveCommand { channel name } {
- tputs $channel [appendArgs "---- checking for interactive command \"" \
- $name "\"... "]
-
- #
- # NOTE: Currently, only Eagle has "interactive commands".
- #
- if {[isEagle]} then {
- #
- # NOTE: Attempt to query the interactive command names from Eagle.
- #
- if {[catch {object invoke Utility GetInteractiveCommandNames $name \
- false} names] == 0 && \
- [llength $names] > 0} then {
- #
- # NOTE: Yes, it appears that it is available.
- #
- addConstraint [appendArgs interactiveCommand. $name]
-
- tputs $channel yes\n
-
- #
- # NOTE: We are done here, return now.
- #
- return
- }
- }
-
- tputs $channel no\n
- }
-
proc checkForUserInteraction { channel } {
tputs $channel "---- checking for user interaction... "
#
# HACK: For now, do the exact same check as checkForInteractive; however,
@@ -1132,98 +1010,10 @@
} else {
tputs $channel untrusted\n
}
}
- proc checkForManagedDebuggingAssistants { channel } {
- set fileName [file normalize [appendArgs [info nameofexecutable] \
- .mda.config]]
-
- tputs $channel [appendArgs \
- "---- checking for managed debugging assistants enabled via \"" \
- $fileName "\"... "]
-
- if {[file exists $fileName]} then {
- #
- # NOTE: Since the System.Xml assembly may not be loaded, wrap the
- # detection in a [catch] block.
- #
- if {[catch {
- #
- # NOTE: Create and load an XML document based on the data from the
- # MDA configuration file associated with the executable that
- # started this process.
- #
- set document [object create -alias System.Xml.XmlDocument]
- $document LoadXml [readFile $fileName]
-
- #
- # NOTE: Setup the XML namespace manager for use when using XPath
- # to query the XML document.
- #
- set nameTable [$document NameTable]
-
- set namespaceManager [object create \
- -alias System.Xml.XmlNamespaceManager $nameTable]
-
- $namespaceManager AddNamespace mda \
- http://schemas.microsoft.com/CLR/2004/10/mda
-
- #
- # NOTE: Select all nodes underneath the location where they should
- # reside in the MDA configuration XML document.
- #
- set nodes [$document SelectNodes \
- /mda:mdaConfig/mda:assistants/* $namespaceManager]
-
- #
- # NOTE: Populate the local result variable with the names of
- # all the XML nodes found.
- #
- set names [object lmap -alias node $nodes {
- $node Name
- }]
- }] == 0} then {
- #
- # NOTE: Ok, the XML configuration file was loaded and parsed
- # correctly, see if any managed debugging assistants were
- # found enabled within it.
- #
- if {[info exists names] && [llength $names] > 0} then {
- #
- # NOTE: Add a test constraint for each managed debugging
- # assistant that appears to be enabled.
- #
- addConstraint mda
-
- foreach name $names {
- addConstraint [appendArgs mda. $name]
- }
-
- #
- # NOTE: Save the list of managed debugging assistants for
- # later use by the test suite.
- #
- set ::test_mdas $names
-
- #
- # NOTE: Yes, it appears that at least one managed debugging
- # assistant is enabled.
- #
- tputs $channel [appendArgs "yes (" $names ")\n"]
-
- #
- # NOTE: We are done here, return now.
- #
- return
- }
- }
- }
-
- tputs $channel no\n
- }
-
proc checkForStrongName { channel } {
tputs $channel "---- checking for strong name... "
if {[catch {object invoke Interpreter.GetActive GetStrongName} \
strongName] == 0 && \
@@ -2376,16 +2166,15 @@
#
exportAndImportPackageCommands [namespace current] [list checkForPlatform \
checkForEagle checkForGaruda checkForShell checkForDebug checkForTk \
checkForVersion checkForCommand checkForFile checkForNativeCode \
checkForTip127 checkForTip194 checkForTip241 checkForTip285 \
- checkForTip405 checkForPerformance checkForTiming checkForInteractive \
- checkForSymbols checkForLogFile checkForNetwork checkForCompileOption \
- checkForInteractiveCommand checkForWindowsCommandProcessor \
- checkForUserInteraction checkForTclOptions checkForTestConfiguration \
- checkForTestSuffix checkForVariable checkForScriptLibrary \
- checkForStackIntensive checkForFossil] false false
+ checkForPerformance checkForTiming checkForInteractive checkForSymbols \
+ checkForLogFile checkForNetwork checkForCompileOption \
+ checkForWindowsCommandProcessor checkForUserInteraction \
+ checkForTclOptions checkForTestConfiguration checkForVariable \
+ checkForFossil] false false
###########################################################################
############################## END Tcl ONLY ###############################
###########################################################################
}
Index: Externals/Eagle/lib/Test1.0/prologue.eagle
==================================================================
--- Externals/Eagle/lib/Test1.0/prologue.eagle
+++ Externals/Eagle/lib/Test1.0/prologue.eagle
@@ -20,13 +20,13 @@
}
#
# NOTE: Make sure all the variables used by this prologue are unset.
#
- unset -nocomplain pkg_dir pattern exec dummy directory name value expr \
- publicKeyToken encoding memory stack drive server database timeout \
- user password percent checkout timeStamp
+ unset -nocomplain pkg_dir pattern exec dummy directory name value \
+ expr publicKeyToken encoding memory stack drive server database \
+ timeout user password percent checkout timeStamp
#
# NOTE: Set the location of the test suite, if necessary.
#
if {![info exists test_path]} then {
@@ -251,11 +251,10 @@
set test_flags(-threshold) ""; # default to requiring all tests to pass.
set test_flags(-stopOnFailure) ""; # default to continue on failure.
set test_flags(-exitOnComplete) ""; # default to not exit after complete.
set test_flags(-preTest) ""; # default to not evaluating anything.
set test_flags(-postTest) ""; # default to not evaluating anything.
- set test_flags(-tclsh) ""; # Tcl shell, default to empty.
#
# NOTE: Check for and process any command line arguments.
#
if {[info exists argv]} then {
@@ -270,11 +269,11 @@
#
foreach {name value} $test_flags(-no) {
set no($name) $value
}
- unset -nocomplain name value
+ unset name value
}
if {[info exists test_flags(-logFile)] && \
[string length $test_flags(-logFile)] > 0} then {
#
@@ -334,33 +333,16 @@
if {![info exists test_configuration]} then {
set test_configuration [getPlatformInfo configuration Release]
}
#
- # NOTE: Set the Tcl shell executable to use for those specialized tests that
- # may require it, if necessary.
+ # NOTE: Set the Tcl shell executable to use for those specialized
+ # tests that may require it, if necessary.
#
if {![info exists test_tclsh]} then {
- #
- # NOTE: When running in Eagle, more complex logic is required to determine
- # the Tcl shell to use for the various tests that require it. Also,
- # this same logic is used with Tcl when it is not running from an
- # instance of the Tcl shell executable.
- #
if {[isEagle] || ![string match tclsh* $bin_file]} then {
- if {[info exists test_flags(-tclsh)] && \
- [string length $test_flags(-tclsh)] > 0} then {
- #
- # NOTE: Use the Tcl shell specified via the command line.
- #
- set test_tclsh $test_flags(-tclsh)
- } else {
- #
- # NOTE: Check for a Tcl shell specified via the environment.
- #
- set test_tclsh [getTclShellFileName]
- }
+ set test_tclsh tclsh
} else {
set test_tclsh $bin_file
}
}
@@ -447,14 +429,10 @@
tputs $test_channel [appendArgs "---- test configuration: " \
[expr {[info exists test_configuration] ? \
$test_configuration : ""}] \n]
- tputs $test_channel [appendArgs "---- test suffix: " \
- [expr {[info exists test_suffix] ? \
- $test_suffix : ""}] \n]
-
if {[isEagle]} then {
catch {info engine PublicKeyToken} publicKeyToken
if {[string length $publicKeyToken] == 0} then {
#
@@ -879,21 +857,10 @@
# "debug-4.1".
#
checkForCompileOption $test_channel DEBUGGER
}
- #
- # NOTE: Has application domain management support been enabled (at
- # compile-time)?
- #
- if {![info exists no(compileAppDomains)]} then {
- #
- # NOTE: For test "interp-1.27".
- #
- checkForCompileOption $test_channel APPDOMAINS
- }
-
#
# NOTE: Has isolated interpreter support been enabled (at compile-time)?
#
if {![info exists no(compileIsolatedInterpreters)]} then {
#
@@ -1184,20 +1151,14 @@
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestRemoveNamedFunction*
#
- # NOTE: For test "interp-1.19".
+ # NOTE: For test "interp-1.18".
#
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestAddNamedFunction2*
-
- #
- # NOTE: For tests "function-5.*".
- #
- checkForObjectMember $test_channel Eagle._Tests.Default \
- *TestAddNamedFunction3*
}
#
# NOTE: Has write-box testing support been disabled?
#
@@ -1547,18 +1508,10 @@
#
if {![info exists no(managedDebugger)]} then {
checkForManagedDebugger $test_channel
}
- #
- # NOTE: Has managed debugging assistants testing support been
- # disabled?
- #
- if {![info exists no(managedDebuggingAssistants)]} then {
- checkForManagedDebuggingAssistants $test_channel
- }
-
#
# NOTE: Has script debugger testing support been disabled?
#
if {![info exists no(scriptDebugger)]} then {
#
@@ -1671,17 +1624,10 @@
#
if {![info exists no(testConfiguration)]} then {
checkForTestConfiguration $test_channel
}
- #
- # NOTE: Has checking for the test suffix been disabled?
- #
- if {![info exists no(testSuffix)]} then {
- checkForTestSuffix $test_channel
- }
-
#
# NOTE: Has checking for the extra files needed by various tests been
# disabled?
#
if {![info exists no(checkForFile)]} then {
@@ -1796,17 +1742,10 @@
#
if {![info exists no(test.xls)]} then {
checkForFile $test_channel [file join $test_path test.xls]
}
- #
- # NOTE: For test "proc-1.9".
- #
- if {![info exists no(testProcs.tcl)]} then {
- checkForFile $test_channel [file join $test_path testProcs.tcl]
- }
-
#
# NOTE: For test "interp-1.10".
#
if {![info exists no(settings.xml)]} then {
checkForFile $test_channel [file join $test_path settings.xml]
@@ -1896,22 +1835,14 @@
#
if {![info exists no(platform)]} then {
checkForPlatform $test_channel
}
- if {![info exists no(scriptLibrary)]} then {
- checkForScriptLibrary $test_channel
- }
-
if {![info exists no(tclOptions)]} then {
checkForTclOptions $test_channel
}
- if {![info exists no(stackIntensive)]} then {
- checkForStackIntensive $test_channel
- }
-
if {![info exists no(windowsCommandProcessor)]} then {
checkForWindowsCommandProcessor $test_channel cmd.exe
}
if {![info exists no(fossil)]} then {
@@ -2009,14 +1940,10 @@
if {![info exists no(tip285)]} then {
checkForTip285 $test_channel
}
- if {![info exists no(tip405)]} then {
- checkForTip405 $test_channel
- }
-
#
# NOTE: Has performance testing been disabled?
#
if {![info exists no(performance)]} then {
checkForPerformance $test_channel
@@ -2041,25 +1968,10 @@
#
if {![info exists no(interactive)]} then {
checkForInteractive $test_channel
}
- #
- # NOTE: Has interactive command testing been disabled?
- #
- if {![info exists no(interactiveCommand)]} then {
- #
- # NOTE: For test "debug-1.8".
- #
- checkForInteractiveCommand $test_channel go
-
- #
- # NOTE: For test "debug-1.9".
- #
- checkForInteractiveCommand $test_channel done
- }
-
if {![info exists no(userInteraction)]} then {
checkForUserInteraction $test_channel
}
#
Index: Membership/Properties/AssemblyInfo.cs
==================================================================
--- Membership/Properties/AssemblyInfo.cs
+++ Membership/Properties/AssemblyInfo.cs
@@ -31,7 +31,7 @@
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.84.0")]
-[assembly: AssemblyFileVersion("1.0.84.0")]
+[assembly: AssemblyVersion("1.0.83.0")]
+[assembly: AssemblyFileVersion("1.0.83.0")]
DELETED SQLite.Beta.nuspec
Index: SQLite.Beta.nuspec
==================================================================
--- SQLite.Beta.nuspec
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
- System.Data.SQLite.Beta
- System.Data.SQLite (x86/x64) Beta
- 1.0.84.0
- SQLite Development Team
- The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.
- en-US
- http://system.data.sqlite.org/
- http://system.data.sqlite.org/images/sqlite32.png
- http://www.sqlite.org/copyright.html
- sqlite database ado.net provider interop
- Public Domain
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Index: SQLite.Designer/AssemblyInfo.cs
==================================================================
--- SQLite.Designer/AssemblyInfo.cs
+++ SQLite.Designer/AssemblyInfo.cs
@@ -41,7 +41,7 @@
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.84.0")]
-[assembly: AssemblyFileVersion("1.0.84.0")]
+[assembly: AssemblyVersion("1.0.83.0")]
+[assembly: AssemblyFileVersion("1.0.83.0")]
Index: SQLite.Designer/source.extension.vsixmanifest
==================================================================
--- SQLite.Designer/source.extension.vsixmanifest
+++ SQLite.Designer/source.extension.vsixmanifest
@@ -1,11 +1,11 @@
System.Data.SQLite Designer
http://system.data.sqlite.org/
- 1.0.84.0
+ 1.0.83.0
ADO.NET Data Designer for SQLite
1033
false
Index: SQLite.Interop/SQLite.Interop.2010.vcxproj
==================================================================
--- SQLite.Interop/SQLite.Interop.2010.vcxproj
+++ SQLite.Interop/SQLite.Interop.2010.vcxproj
@@ -6,14 +6,10 @@
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
-
- $(MSBuildProjectDirectory)\..
-
-
DebugNativeOnly
x64
Index: SQLite.Interop/SQLite.Interop.2012.vcxproj
==================================================================
--- SQLite.Interop/SQLite.Interop.2012.vcxproj
+++ SQLite.Interop/SQLite.Interop.2012.vcxproj
@@ -6,14 +6,10 @@
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
-
- $(MSBuildProjectDirectory)\..
-
-
DebugNativeOnly
x64
Index: SQLite.Interop/SQLite.Interop.Static.2010.vcxproj
==================================================================
--- SQLite.Interop/SQLite.Interop.Static.2010.vcxproj
+++ SQLite.Interop/SQLite.Interop.Static.2010.vcxproj
@@ -6,14 +6,10 @@
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
-
- $(MSBuildProjectDirectory)\..
-
-
DebugNativeOnly
x64
Index: SQLite.Interop/SQLite.Interop.Static.2012.vcxproj
==================================================================
--- SQLite.Interop/SQLite.Interop.Static.2012.vcxproj
+++ SQLite.Interop/SQLite.Interop.Static.2012.vcxproj
@@ -6,14 +6,10 @@
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
-
- $(MSBuildProjectDirectory)\..
-
-
DebugNativeOnly
x64
Index: SQLite.Interop/props/SQLite.Interop.2005.vsprops
==================================================================
--- SQLite.Interop/props/SQLite.Interop.2005.vsprops
+++ SQLite.Interop/props/SQLite.Interop.2005.vsprops
@@ -17,31 +17,31 @@
Value="2005"
PerformEnvironmentSet="true"
/>
2010
- 084
+ 083
1.0
- 1.0.84.0
- 1,0,84,0
- INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1
+ 1.0.83.0
+ 1,0,83,0
+ INTEROP_DEBUG=0x307;INTEROP_TEST_EXTENSION=1
INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1
/ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp
$(ProjectDir)..\System.Data.SQLite\System.Data.SQLite.snk
SQLite.Interop
System.Data.SQLite
Index: SQLite.Interop/props/SQLite.Interop.2012.props
==================================================================
--- SQLite.Interop/props/SQLite.Interop.2012.props
+++ SQLite.Interop/props/SQLite.Interop.2012.props
@@ -8,15 +8,15 @@
*
-->
2012
- 084
+ 083
1.0
- 1.0.84.0
- 1,0,84,0
- INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1
+ 1.0.83.0
+ 1,0,83,0
+ INTEROP_DEBUG=0x307;INTEROP_TEST_EXTENSION=1
INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1
/ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp
$(ProjectDir)..\System.Data.SQLite\System.Data.SQLite.snk
SQLite.Interop
System.Data.SQLite
Index: SQLite.Interop/props/sqlite3.props
==================================================================
--- SQLite.Interop/props/sqlite3.props
+++ SQLite.Interop/props/sqlite3.props
@@ -7,12 +7,12 @@
* Released to the public domain, use at your own risk!
*
-->
- 3.7.16
- 3,7,16
+ 3.7.15
+ 3,7,15
_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;SQLITE_THREADSAFE=1;SQLITE_USE_URI=1;SQLITE_ENABLE_COLUMN_METADATA=1;SQLITE_ENABLE_STAT3=1;SQLITE_ENABLE_FTS3=1;SQLITE_ENABLE_LOAD_EXTENSION=1;SQLITE_ENABLE_RTREE=1;SQLITE_SOUNDEX=1
SQLITE_HAS_CODEC=1
SQLITE_OMIT_WAL=1
SQLITE_DEBUG=1;SQLITE_MEMDEBUG=1;SQLITE_ENABLE_EXPENSIVE_ASSERT=1
SQLITE_WIN32_MALLOC=1
Index: SQLite.Interop/props/sqlite3.vsprops
==================================================================
--- SQLite.Interop/props/sqlite3.vsprops
+++ SQLite.Interop/props/sqlite3.vsprops
@@ -12,16 +12,16 @@
Version="8.00"
Name="sqlite3"
>
**
**
-