Author: gert
Date: 2007-10-21 11:45:43 -0400 (Sun, 21 Oct 2007)
New Revision: 87869

Added:
   trunk/gert/standalone/bug329440/
   trunk/gert/standalone/bug329440/default.build
   trunk/gert/standalone/bug329440/test.cs
Log:
Added test for bug #329440.


Added: trunk/gert/standalone/bug329440/default.build
===================================================================
--- trunk/gert/standalone/bug329440/default.build       2007-10-21 15:01:17 UTC 
(rev 87868)
+++ trunk/gert/standalone/bug329440/default.build       2007-10-21 15:45:43 UTC 
(rev 87869)
@@ -0,0 +1,62 @@
+<project name="bug329440" default="rebuild">
+       <target name="mono-1.0">
+               <property name="csc.defines" 
value="NET_1_0,NET_1_1,ONLY_1_1,MONO" />
+       </target>
+
+       <target name="mono-2.0">
+               <property name="csc.defines" 
value="NET_1_0,NET_1_1,NET_2_0,ONLY_2_0,MONO" />
+       </target>
+
+       <target name="net-1.1">
+               <property name="csc.defines" value="NET_1_0,NET_1_1,ONLY_1_1" />
+       </target>
+
+       <target name="net-2.0">
+               <property name="csc.defines" 
value="NET_1_0,NET_1_1,NET_2_0,ONLY_2_0" />
+       </target>
+
+       <property name="frameworks" value="mono-1.0,mono-2.0,net-1.1,net-2.0" />
+
+       <target name="clean">
+               <delete>
+                       <fileset>
+                               <include name="out" />
+                               <include name="test.exe" />
+                       </fileset>
+               </delete>
+       </target>
+
+       <target name="build">
+               <property name="original.targetframework" 
value="${nant.settings.currentframework}" />
+
+               <foreach property="framework" item="String" in="${frameworks}" 
delim=",">
+                       <if test="${framework::exists(framework)}">
+                               <property name="nant.settings.currentframework" 
value="${framework}" />
+                               <call 
target="${nant.settings.currentframework}" />
+                               <call target="run" />
+                               <call target="clean" />
+                       </if>
+               </foreach>
+
+               <property name="nant.settings.currentframework" 
value="${original.targetframework}" />
+       </target>
+
+       <target name="compile">
+               <csc target="exe" output="test.exe" define="${csc.defines}" 
warnaserror="true" warninglevel="4">
+                       <sources>
+                               <include name="../../build/common/Assert.cs" />
+                               <include name="test.cs" />
+                       </sources>
+                       <references>
+                               <include name="System.Data.dll" />
+                       </references>
+               </csc>
+       </target>
+
+       <target name="run" depends="compile">
+               <exec program="test.exe" managed="true" output="out" />
+               <fail if="${file::exists('out')}" />
+       </target>
+
+       <target name="rebuild" depends="clean, build" />
+</project>


Property changes on: trunk/gert/standalone/bug329440/default.build
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/gert/standalone/bug329440/test.cs
===================================================================
--- trunk/gert/standalone/bug329440/test.cs     2007-10-21 15:01:17 UTC (rev 
87868)
+++ trunk/gert/standalone/bug329440/test.cs     2007-10-21 15:45:43 UTC (rev 
87869)
@@ -0,0 +1,94 @@
+using System;
+using System.Data;
+using System.Data.Odbc;
+using System.Data.OleDb;
+using System.Data.SqlClient;
+using System.Globalization;
+using System.Text;
+using System.Threading;
+
+class Program
+{
+       [STAThread]
+       static int Main ()
+       {
+               if (Environment.GetEnvironmentVariable ("MONO_TESTS_SQL") == 
null)
+                       return 0;
+
+               Thread.CurrentThread.CurrentCulture = 
CultureInfo.InvariantCulture;
+               Thread.CurrentThread.CurrentUICulture = 
CultureInfo.InvariantCulture;
+
+               SqlConnection conn = new SqlConnection 
(CreateSqlConnectionString ());
+               conn.Open ();
+
+               SqlCommand cmd = new SqlCommand (drop_table, conn);
+               cmd.ExecuteNonQuery ();
+
+               try {
+                       cmd = new SqlCommand (create_table, conn);
+                       cmd.ExecuteNonQuery ();
+
+                       cmd = new SqlCommand (insert_data, conn);
+                       cmd.ExecuteNonQuery ();
+
+                       SqlDataAdapter da = new SqlDataAdapter ();
+                       DataSet ds = new DataSet ();
+
+                       cmd = new SqlCommand ("SELECT * FROM bug329440", conn);
+                       da.SelectCommand = cmd;
+                       da.Fill (ds);
+                       da.Dispose ();
+               } finally {
+                       cmd = new SqlCommand (drop_table, conn);
+                       cmd.ExecuteNonQuery ();
+               }
+
+               conn.Dispose ();
+
+               return 0;
+       }
+
+       static string CreateSqlConnectionString ()
+       {
+               StringBuilder sb = new StringBuilder ();
+
+               string serverName = Environment.GetEnvironmentVariable 
("MONO_TESTS_SQL_HOST");
+               if (serverName == null)
+                       throw CreateEnvironmentVariableNotSetException 
("MONO_TESTS_SQL_HOST");
+
+               string dbName = Environment.GetEnvironmentVariable 
("MONO_TESTS_SQL_DB");
+               if (dbName == null)
+                       throw CreateEnvironmentVariableNotSetException 
("MONO_TESTS_SQL_DB");
+
+               sb.AppendFormat ("server={0};database={1};", serverName, 
dbName);
+
+               string userName = Environment.GetEnvironmentVariable 
("MONO_TESTS_SQL_USER");
+               if (userName != null)
+                       sb.AppendFormat ("user id={0};", userName);
+
+               string pwd = Environment.GetEnvironmentVariable 
("MONO_TESTS_SQL_PWD");
+               if (pwd != null)
+                       sb.AppendFormat ("pwd={0};", pwd);
+               return sb.ToString ();
+       }
+
+       static ArgumentException CreateEnvironmentVariableNotSetException 
(string name)
+       {
+               return new ArgumentException ("The " + name + " environment 
variable is not set");
+       }
+
+       const string drop_table = @"
+               IF EXISTS (SELECT * FROM sys.objects WHERE object_id = 
OBJECT_ID(N'[dbo].[bug329440]') AND type = N'U')
+                       DROP TABLE [dbo].[bug329440]";
+
+       const string create_table = @"
+               CREATE TABLE bug329440
+               (
+                       Name varchar(20),
+                       FirstName varchar (10)
+               )";
+
+       const string insert_data = @"
+               INSERT INTO bug329440 VALUES (N'de Icaza', N'Miguel');
+               INSERT INTO bug329440 VALUES (N'Pobst', N'Jonathan');";
+}


Property changes on: trunk/gert/standalone/bug329440/test.cs
___________________________________________________________________
Name: svn:eol-style
   + native

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to