You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(142) |
Jun
(27) |
Jul
(122) |
Aug
(36) |
Sep
(59) |
Oct
(86) |
Nov
(140) |
Dec
(80) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(52) |
Feb
(153) |
Mar
(118) |
Apr
(143) |
May
(123) |
Jun
(64) |
Jul
(282) |
Aug
(469) |
Sep
(56) |
Oct
(201) |
Nov
(182) |
Dec
(31) |
| 2005 |
Jan
(229) |
Feb
(316) |
Mar
(187) |
Apr
(130) |
May
(190) |
Jun
(154) |
Jul
(148) |
Aug
(133) |
Sep
(209) |
Oct
(234) |
Nov
(100) |
Dec
(40) |
| 2006 |
Jan
(1) |
Feb
(87) |
Mar
(73) |
Apr
(126) |
May
(58) |
Jun
(8) |
Jul
(12) |
Aug
(14) |
Sep
(22) |
Oct
(33) |
Nov
(4) |
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
|
2
(6) |
|
3
(3) |
4
|
5
(1) |
6
|
7
|
8
(17) |
9
|
|
10
|
11
(1) |
12
|
13
(6) |
14
|
15
|
16
|
|
17
(2) |
18
|
19
|
20
|
21
|
22
|
23
|
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
|
31
|
|
|
|
|
|
|
|
From: <mik...@us...> - 2003-08-17 21:52:27
|
Update of /cvsroot/ccnet/ccnet/lib In directory sc8-pr-cvs1:/tmp/cvs-serv25236/lib Modified Files: SiteMesh.dll Log Message: webapp 'large page' bug - http://jira.truemesh.com/secure/ViewIssue.jspa?key=CC-54 Made a small fork of Sitemesh (fix to be pushed back), and added a new Sitemesh.dll Index: SiteMesh.dll =================================================================== RCS file: /cvsroot/ccnet/ccnet/lib/SiteMesh.dll,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvswCLI46 and /tmp/cvsYzHgL3 differ |
|
From: <mik...@us...> - 2003-08-17 19:43:55
|
Update of /cvsroot/ccnet/ccnet/project/console
In directory sc8-pr-cvs1:/tmp/cvs-serv21494/project/console
Modified Files:
ccnet.example.config
Log Message:
Updating example config (Thanks JR!)
Index: ccnet.example.config
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/console/ccnet.example.config,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ccnet.example.config 29 Jul 2003 17:26:29 -0000 1.1
--- ccnet.example.config 17 Aug 2003 19:43:52 -0000 1.2
***************
*** 5,10 ****
<sourcecontrol type="cvs">
<executable>c:\putty\cvswithplinkrsh.bat</executable>
! <workingDirectory>c:\fromcvs\myrepo</workingDirectory>
! <cvsroot>:ext:mycvsserver:/cvsroot/myrepo</cvsroot>
</sourcecontrol>
<build type="nant">
--- 5,9 ----
<sourcecontrol type="cvs">
<executable>c:\putty\cvswithplinkrsh.bat</executable>
! <workingDirectory>c:\fromcvs\myrepo\myproject</workingDirectory>
</sourcecontrol>
<build type="nant">
|
|
From: <mik...@us...> - 2003-08-13 03:04:48
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol
In directory sc8-pr-cvs1:/tmp/cvs-serv7002/project/core/sourcecontrol
Added Files:
MultiSourceControl.cs
Log Message:
Adding a 'MultiSourceControl' SC plugin. Check the Test Case to see how it works.
--- NEW FILE: MultiSourceControl.cs ---
using System;
using System.Collections;
using Exortech.NetReflector;
using tw.ccnet.core;
namespace tw.ccnet.core.sourcecontrol
{
[ReflectorType("multi")]
public class MultiSourceControl : ISourceControl
{
private IList _sourceControls;
[ReflectorCollection("sourceControls", InstanceType=typeof(ArrayList), Required=true)]
public IList SourceControls
{
get
{
if (_sourceControls == null)
_sourceControls = new ArrayList();
return _sourceControls;
}
set { _sourceControls = value; }
}
public Modification[] GetModifications(DateTime from, DateTime to)
{
ArrayList modifications = new ArrayList();
foreach (ISourceControl sourceControl in SourceControls)
{
Modification[] mods = sourceControl.GetModifications(from, to);
if (mods != null)
{
modifications.AddRange(mods);
}
}
return (Modification[]) modifications.ToArray(typeof(Modification));
}
public void LabelSourceControl(string label, DateTime timeStamp)
{
foreach (ISourceControl sourceControl in SourceControls)
{
sourceControl.LabelSourceControl(label, timeStamp);
}
}
public void Run(IntegrationResult result)
{
result.Modifications = GetModifications(result.LastModificationDate, DateTime.Now);
}
}
}
|
|
From: <mik...@us...> - 2003-08-13 02:54:48
|
Update of /cvsroot/ccnet/ccnet/project/core
In directory sc8-pr-cvs1:/tmp/cvs-serv7002/project/core
Modified Files:
core.csproj
Log Message:
Adding a 'MultiSourceControl' SC plugin. Check the Test Case to see how it works.
Index: core.csproj
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/core.csproj,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** core.csproj 28 Jul 2003 23:11:40 -0000 1.12
--- core.csproj 13 Aug 2003 02:45:54 -0000 1.13
***************
*** 89,93 ****
AssemblyName = "nunit.framework"
HintPath = "..\..\lib\nunit.framework.dll"
- Private = "True"
/>
<Reference
--- 89,92 ----
***************
*** 430,433 ****
--- 429,437 ----
/>
<File
+ RelPath = "sourcecontrol\MultiSourceControl.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "sourcecontrol\P4.cs"
SubType = "Code"
***************
*** 506,509 ****
--- 510,518 ----
<File
RelPath = "sourcecontrol\test\ModificationTest.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "sourcecontrol\test\MultiSourceControlTest.cs"
SubType = "Code"
BuildAction = "Compile"
|
|
From: <mik...@us...> - 2003-08-13 02:53:12
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol/test
In directory sc8-pr-cvs1:/tmp/cvs-serv7002/project/core/sourcecontrol/test
Modified Files:
MockSourceControl.cs
Added Files:
MultiSourceControlTest.cs
Log Message:
Adding a 'MultiSourceControl' SC plugin. Check the Test Case to see how it works.
--- NEW FILE: MultiSourceControlTest.cs ---
using System;
using System.Collections;
using NUnit.Framework;
using NMock;
using tw.ccnet.core.util;
using Exortech.NetReflector;
namespace tw.ccnet.core.sourcecontrol.test
{
[TestFixture]
public class MultiSourceControlTest : Assertion
{
public static string SourceControlXml = @"<sourcecontrol type=""multi"">
<sourceControls>
<mocksourcecontrol>
<anOptionalProperty>foo</anOptionalProperty>
</mocksourcecontrol>
<mocksourcecontrol>
<anOptionalProperty>bar</anOptionalProperty>
</mocksourcecontrol>
</sourceControls>
</sourcecontrol>
";
[Test]
public void ValuePopulation()
{
//// SETUP
MultiSourceControl multiSourceControl = new MultiSourceControl();
//// EXECUTE
new XmlPopulator().Populate(XmlUtil.CreateDocumentElement(SourceControlXml), multiSourceControl);
//// VERIFY
Assert(multiSourceControl.SourceControls.Count == 2);
string optionalProp0 = ((SourceControlMock)multiSourceControl.SourceControls[0]).AnOptionalProperty;
string optionalProp1 = ((SourceControlMock)multiSourceControl.SourceControls[1]).AnOptionalProperty;
bool fooFound = optionalProp0 == "foo" || optionalProp1 == "foo";
bool barFound = optionalProp0 == "bar" || optionalProp1 == "bar";
Assert("Didn't find both foo and bar Source Controls", fooFound && barFound);
}
[Test]
public void TestPassesThroughLabelSourceControl()
{
//// SETUP
string label = "testLabel";
DateTime dateTime = DateTime.Now;
DynamicMock mockSC1 = new DynamicMock(typeof(ISourceControl));
mockSC1.Expect("LabelSourceControl", label, dateTime);
DynamicMock mockSC2 = new DynamicMock(typeof(ISourceControl));
mockSC2.Expect("LabelSourceControl", label, dateTime);
ArrayList scList = new ArrayList();
scList.Add(mockSC1.MockInstance);
scList.Add(mockSC2.MockInstance);
MultiSourceControl multiSourceControl = new MultiSourceControl();
multiSourceControl.SourceControls = scList;
//// EXECUTE
multiSourceControl.LabelSourceControl(label, dateTime);
//// VERIFY
mockSC1.Verify();
mockSC2.Verify();
}
[Test]
public void TestPassesThroughGetSourceControlAndCombinesResults()
{
//// SETUP
DateTime dateTime1 = DateTime.Now;
DateTime dateTime2 = dateTime1.AddDays(10);
Modification mod1 = new Modification();
mod1.Comment = "Testing Multi";
Modification mod2 = new Modification();
mod2.Comment = "More Multi";
Modification mod3 = new Modification();
mod3.Comment = "Yet More Multi";
ArrayList mocks = new ArrayList();
mocks.Add( createModificationsSourceControlMock( new Modification[] { mod1, mod2 }, dateTime1, dateTime2 ) );
mocks.Add( createModificationsSourceControlMock( new Modification[] { mod3 }, dateTime1, dateTime2 ) );
mocks.Add( createModificationsSourceControlMock( new Modification[0], dateTime1, dateTime2 ) );
mocks.Add( createModificationsSourceControlMock( null, dateTime1, dateTime2 ) );
ArrayList scList = new ArrayList();
foreach (DynamicMock mock in mocks)
{
scList.Add(mock.MockInstance);
}
MultiSourceControl multiSourceControl = new MultiSourceControl();
multiSourceControl.SourceControls = scList;
//// EXECUTE
ArrayList returnedMods = new ArrayList( multiSourceControl.GetModifications(dateTime1, dateTime2) );
//// VERIFY
foreach (DynamicMock mock in mocks)
{
mock.Verify();
}
Assert(returnedMods.Contains(mod1));
Assert(returnedMods.Contains(mod2));
Assert(returnedMods.Contains(mod3));
}
private DynamicMock createModificationsSourceControlMock(Modification[] mods, DateTime dt1, DateTime dt2)
{
DynamicMock mock = new DynamicMock(typeof(ISourceControl));
mock.ExpectAndReturn("GetModifications", mods, dt1, dt2);
return mock;
}
}
}
Index: MockSourceControl.cs
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/test/MockSourceControl.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MockSourceControl.cs 25 Jul 2003 12:36:29 -0000 1.3
--- MockSourceControl.cs 13 Aug 2003 02:45:54 -0000 1.4
***************
*** 9,12 ****
--- 9,20 ----
private Modification[] _expectedMods;
private bool _invoked = false;
+ private string _anOptionalProperty;
+
+ [ReflectorProperty("anOptionalProperty", Required=false)]
+ public string AnOptionalProperty
+ {
+ get { return _anOptionalProperty; }
+ set { _anOptionalProperty = value; }
+ }
public Modification[] ExpectedModifications
|
|
From: <mik...@us...> - 2003-08-13 02:50:56
|
Update of /cvsroot/ccnet/ccnet/project/web In directory sc8-pr-cvs1:/tmp/cvs-serv6576/project/web Modified Files: Default.aspx Log Message: adding body tags. Index: Default.aspx =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/web/Default.aspx,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Default.aspx 3 Aug 2003 17:59:43 -0000 1.5 --- Default.aspx 13 Aug 2003 02:42:36 -0000 1.6 *************** *** 4,7 **** --- 4,8 ---- <TITLE>CruiseControl .NET Build Results</TITLE> </HEAD> + <body> <table cellpadding="0" cellspacing="0" width="100%"> <tr> *************** *** 46,48 **** --- 47,50 ---- </tr> </table> + </body> </HTML> |
|
From: <mik...@us...> - 2003-08-13 02:43:47
|
Update of /cvsroot/ccnet/ccnet/project/core/publishers/test In directory sc8-pr-cvs1:/tmp/cvs-serv6728/project/core/publishers/test Modified Files: NetSendPublisherTest.cs Log Message: Needed to comment out this namespace for compiling in VS 2003 - don't know why... Index: NetSendPublisherTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/publishers/test/NetSendPublisherTest.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NetSendPublisherTest.cs 8 Aug 2003 11:22:51 -0000 1.2 --- NetSendPublisherTest.cs 13 Aug 2003 02:43:44 -0000 1.3 *************** *** 2,6 **** using System.Diagnostics; using System.Text; ! using System.Windows.Forms; using System.Runtime.InteropServices; using NUnit.Framework; --- 2,6 ---- using System.Diagnostics; using System.Text; ! //using System.Windows.Forms; using System.Runtime.InteropServices; using NUnit.Framework; |
|
From: <mik...@us...> - 2003-08-13 02:40:50
|
Update of /cvsroot/ccnet/ccnet/tools/nant In directory sc8-pr-cvs1:/tmp/cvs-serv6354/tools/nant Removed Files: nunit.framework.dll Log Message: don't need this anymore - we aren't using <nunit> in Nant, and its out of date anyway --- nunit.framework.dll DELETED --- |
|
From: <mik...@us...> - 2003-08-11 16:11:06
|
Update of /cvsroot/ccnet/ccnet In directory sc8-pr-cvs1:/tmp/cvs-serv27454 Modified Files: b.bat Log Message: kicking CC Index: b.bat =================================================================== RCS file: /cvsroot/ccnet/ccnet/b.bat,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** b.bat 29 Jul 2003 18:32:54 -0000 1.3 --- b.bat 11 Aug 2003 16:09:59 -0000 1.4 *************** *** 1,3 **** @echo off cls ! tools\nant\NAnt.exe -buildfile:ccnet.build %* \ No newline at end of file --- 1,3 ---- @echo off cls ! tools\nant\NAnt.exe -buildfile:ccnet.build %* |
|
From: <exo...@us...> - 2003-08-08 12:46:29
|
Update of /cvsroot/ccnet/ccnet/incubator/etc In directory sc8-pr-cvs1:/tmp/cvs-serv17155/incubator/etc Modified Files: checkinTestFile.txt Log Message: forced build Index: checkinTestFile.txt =================================================================== RCS file: /cvsroot/ccnet/ccnet/incubator/etc/checkinTestFile.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** checkinTestFile.txt 28 Jul 2003 22:08:23 -0000 1.1 --- checkinTestFile.txt 8 Aug 2003 12:46:26 -0000 1.2 *************** *** 5,6 **** --- 5,7 ---- he's so happy. yes he is. + i would be, but the build is broken. \ No newline at end of file |
|
From: <exo...@us...> - 2003-08-08 12:35:54
|
Update of /cvsroot/ccnet/ccnet/project/core/configuration In directory sc8-pr-cvs1:/tmp/cvs-serv15226/project/core/configuration Added Files: .cvsignore Log Message: ignore xsx files, but forced build to hopefully get it working --- NEW FILE: .cvsignore --- *.xsx |
|
From: <exo...@us...> - 2003-08-08 12:31:08
|
Update of /cvsroot/ccnet/ccnet/tools/nant
In directory sc8-pr-cvs1:/tmp/cvs-serv14436/tools/nant
Modified Files:
nant.exe.config
Log Message:
reversed changed to nant config
Index: nant.exe.config
===================================================================
RCS file: /cvsroot/ccnet/ccnet/tools/nant/nant.exe.config,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** nant.exe.config 8 Aug 2003 11:22:52 -0000 1.9
--- nant.exe.config 8 Aug 2003 12:31:05 -0000 1.10
***************
*** 18,22 ****
<!-- nant config settings -->
<nantsettings
! defaultframework="net-1.0"
taskpath=".\optional">
<frameworks>
--- 18,22 ----
<!-- nant config settings -->
<nantsettings
! defaultframework="net-1.1"
taskpath=".\optional">
<frameworks>
|
|
From: <exo...@us...> - 2003-08-08 11:36:22
|
Update of /cvsroot/ccnet/ccnet/project/web
In directory sc8-pr-cvs1:/tmp/cvs-serv5959/project/web
Modified Files:
web.csproj
Log Message:
included newly added files in project file
Index: web.csproj
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/web/web.csproj,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** web.csproj 1 Jun 2003 19:10:47 -0000 1.5
--- web.csproj 8 Aug 2003 11:36:19 -0000 1.6
***************
*** 215,218 ****
--- 215,233 ----
/>
<File
+ RelPath = "Tests.aspx"
+ BuildAction = "Content"
+ />
+ <File
+ RelPath = "Tests.aspx.cs"
+ DependentUpon = "Tests.aspx"
+ SubType = "ASPXCodeBehind"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "Tests.aspx.resx"
+ DependentUpon = "Tests.aspx.cs"
+ BuildAction = "EmbeddedResource"
+ />
+ <File
RelPath = "TestTiming.aspx"
BuildAction = "Content"
***************
*** 283,286 ****
--- 298,305 ----
/>
<File
+ RelPath = "log\log20020916143556.xml"
+ BuildAction = "Content"
+ />
+ <File
RelPath = "log\log20020924144031.xml"
BuildAction = "Content"
***************
*** 339,342 ****
--- 358,365 ----
<File
RelPath = "xsl\modifications.xsl"
+ BuildAction = "Content"
+ />
+ <File
+ RelPath = "xsl\tests.xsl"
BuildAction = "Content"
/>
|
|
From: <exo...@us...> - 2003-08-08 11:22:55
|
Update of /cvsroot/ccnet/ccnet/tools/nant
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/tools/nant
Modified Files:
nant.exe.config
Log Message:
added NetSendPublisher, and test results web page
Index: nant.exe.config
===================================================================
RCS file: /cvsroot/ccnet/ccnet/tools/nant/nant.exe.config,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** nant.exe.config 29 Jul 2003 01:07:49 -0000 1.8
--- nant.exe.config 8 Aug 2003 11:22:52 -0000 1.9
***************
*** 18,22 ****
<!-- nant config settings -->
<nantsettings
! defaultframework="net-1.1"
taskpath=".\optional">
<frameworks>
--- 18,22 ----
<!-- nant config settings -->
<nantsettings
! defaultframework="net-1.0"
taskpath=".\optional">
<frameworks>
|
|
From: <exo...@us...> - 2003-08-08 11:22:55
|
Update of /cvsroot/ccnet/ccnet/project/service
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/service
Modified Files:
service2002.csproj
Log Message:
added NetSendPublisher, and test results web page
Index: service2002.csproj
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/service/service2002.csproj,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** service2002.csproj 25 Jul 2003 12:36:29 -0000 1.2
--- service2002.csproj 8 Aug 2003 11:22:52 -0000 1.3
***************
*** 141,145 ****
BuildAction = "EmbeddedResource"
/>
! <Folder RelPath = "test\" />
</Include>
</Files>
--- 141,149 ----
BuildAction = "EmbeddedResource"
/>
! <File
! RelPath = "test\ServiceTest.cs"
! SubType = "Code"
! BuildAction = "Compile"
! />
</Include>
</Files>
|
Update of /cvsroot/ccnet/ccnet/project/web In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/web Modified Files: Decorator.aspx Decorator.aspx.cs web2002.csproj Added Files: Tests.aspx Tests.aspx.cs Tests.aspx.resx Log Message: added NetSendPublisher, and test results web page --- NEW FILE: Tests.aspx --- <%@ Page language="c#" Codebehind="Tests.aspx.cs" Inherits="tw.ccnet.web.Tests" AutoEventWireup="false" %> <HTML> <HEAD> <TITLE>CruiseControl .NET Test Results</TITLE> </HEAD> <asp:Label id="BodyLabel" runat="server" Width="432px" Height="400px" /> </HTML> --- NEW FILE: Tests.aspx.cs --- using System; using System.Collections; using System.Configuration; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Text; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Xml; using tw.ccnet.core; namespace tw.ccnet.web { public class Tests : System.Web.UI.Page { protected System.Web.UI.WebControls.Label BodyLabel; private void Page_Load(object sender, System.EventArgs e) { try { InitDisplayLogFile(); } catch(CruiseControlException ex) { BodyLabel.Text += WebUtil.FormatException(ex); } } private void InitDisplayLogFile() { string logfile = WebUtil.GetLogFilename(Context, Request); if (logfile == null) { return; } if (!File.Exists(logfile)) { throw new CruiseControlException(String.Format("Logfile not found: {0}", logfile)); } StringBuilder builder = new StringBuilder(); try { XmlDocument document = new XmlDocument(); document.Load(logfile); string xslFile = "xsl/tests.xsl"; string directory = Path.GetDirectoryName(xslFile); string file = Path.GetFileName(xslFile); string transformFile = Path.Combine(Request.MapPath(directory), file); builder.Append(tw.ccnet.core.publishers.BuildLogTransformer.Transform(document, transformFile)).Append("<br>"); } catch(XmlException ex) { throw new CruiseControlException(String.Format("Bad XML in logfile: {0}\n{1}", logfile, ex)); } BodyLabel.Text = builder.ToString(); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } } --- NEW FILE: Tests.aspx.resx --- <?xml version="1.0" encoding="utf-8" ?> <root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="ResMimeType"> <value>text/microsoft-resx</value> </resheader> <resheader name="Version"> <value>1.0.0.0</value> </resheader> <resheader name="Reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="Writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> </root> Index: Decorator.aspx =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/web/Decorator.aspx,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Decorator.aspx 28 Jul 2003 23:24:32 -0000 1.2 --- Decorator.aspx 8 Aug 2003 11:22:52 -0000 1.3 *************** *** 20,25 **** <a class="link" href=".">latest</a> | <a class="link" id="nextLog" runat="server"> next</a> | <a class="link" id="previousLog" runat="server">previous</a> ! | <a class="link" href="Statistics.aspx">stats</a> | <a class="link" id="testTiming" runat="server"> ! test timing</a> </td> <td><img src="images/shim.gif" width="6" border="0"></td> --- 20,26 ---- <a class="link" href=".">latest</a> | <a class="link" id="nextLog" runat="server"> next</a> | <a class="link" id="previousLog" runat="server">previous</a> ! | <a class="link" href="Statistics.aspx">stats</a> ! | <a class="link" id="tests" runat="server">tests</a> ! | <a class="link" id="testTiming" runat="server">test timing</a> </td> <td><img src="images/shim.gif" width="6" border="0"></td> Index: Decorator.aspx.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/web/Decorator.aspx.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Decorator.aspx.cs 3 Aug 2003 17:59:43 -0000 1.2 --- Decorator.aspx.cs 8 Aug 2003 11:22:52 -0000 1.3 *************** *** 26,29 **** --- 26,31 ---- protected System.Web.UI.HtmlControls.HtmlTableCell Td2; protected SiteMesh.DecoratorControls.Title Title3; + protected HtmlAnchor tests; + protected HtmlAnchor testTiming; /* *************** *** 44,48 **** --- 46,57 ---- InitLogFileList(path); InitAdjacentAnchors(path); + tests.HRef = BuildLogFileUri("Tests.aspx"); + testTiming.HRef = BuildLogFileUri("TestTiming.aspx"); + } + + private string BuildLogFileUri(string baseUri) + { string logFile = Request.QueryString[LogFile.LogQueryString]; + return (logFile != null && logFile.Length > 0) ? baseUri + LogFile.CreateUrl(logFile) : baseUri; } Index: web2002.csproj =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/web/web2002.csproj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** web2002.csproj 25 Jul 2003 12:36:29 -0000 1.2 --- web2002.csproj 8 Aug 2003 11:22:52 -0000 1.3 *************** *** 32,36 **** IncrementalBuild = "true" Optimize = "false" ! OutputPath = "bin\Debug\" RegisterForComInterop = "false" RemoveIntegerChecks = "false" --- 32,36 ---- IncrementalBuild = "true" Optimize = "false" ! OutputPath = "bin\" RegisterForComInterop = "false" RemoveIntegerChecks = "false" *************** *** 207,210 **** --- 207,225 ---- /> <File + RelPath = "Tests.aspx" + BuildAction = "Content" + /> + <File + RelPath = "Tests.aspx.cs" + DependentUpon = "Tests.aspx" + SubType = "ASPXCodeBehind" + BuildAction = "Compile" + /> + <File + RelPath = "Tests.aspx.resx" + DependentUpon = "Tests.aspx.cs" + BuildAction = "EmbeddedResource" + /> + <File RelPath = "TestTiming.aspx" BuildAction = "Content" *************** *** 270,273 **** --- 285,292 ---- /> <File + RelPath = "log\log20020916143556.xml" + BuildAction = "Content" + /> + <File RelPath = "log\log20020924144031.xml" BuildAction = "Content" *************** *** 322,325 **** --- 341,348 ---- /> <File + RelPath = "xsl\FxCopReport.xsl" + BuildAction = "Content" + /> + <File RelPath = "xsl\header.xsl" BuildAction = "Content" *************** *** 331,334 **** --- 354,361 ---- <File RelPath = "xsl\modifications.xsl" + BuildAction = "Content" + /> + <File + RelPath = "xsl\tests.xsl" BuildAction = "Content" /> |
|
From: <exo...@us...> - 2003-08-08 11:22:55
|
Update of /cvsroot/ccnet/ccnet/project/web/xsl In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/web/xsl Modified Files: distributables.xsl timing.xsl Added Files: tests.xsl Log Message: added NetSendPublisher, and test results web page --- NEW FILE: tests.xsl --- <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/html4/strict.dtd" > <xsl:output method="html"/> <xsl:template match="/"> <div id="testdata"> <script> function ToggleVisible(blockId) { var block = document.all.item(blockId); if (block.style.display=='none') { block.style.display='block'; } else { block.style.display='none'; } } </script> <table cellpadding="2" cellspacing="0" border="0" width="98%"> <tr> <td class="unittests-sectionheader" colspan="3">  Acceptance Tests: </td> </tr> <tr> <th>Test Fixture</th> <th>Status</th> <th>Progress</th> </tr> <xsl:apply-templates select="//test-suite[results/test-case/@success='False']"> <xsl:sort select="@name" order="ascending" data-type="text" /> </xsl:apply-templates> <xsl:apply-templates select="//test-suite[results/test-case/@executed='False']"> <xsl:sort select="@name" order="ascending" data-type="text" /> </xsl:apply-templates> <xsl:apply-templates select="//test-suite[results/test-case]" mode="success"> <xsl:sort select="@name" order="ascending" data-type="text" /> </xsl:apply-templates> </table> </div> </xsl:template> <xsl:template match="//test-suite" mode="success"> <xsl:if test="count(results/test-case[@success='False']) + count(results/test-case[@executed='False']) = 0"> <xsl:apply-templates select="."/> </xsl:if> </xsl:template> <xsl:template match="//test-suite"> <xsl:variable name="passedtests.list" select="results/test-case[@success='True']"/> <xsl:variable name="ignoredtests.list" select="results/test-case[@executed='False']"/> <xsl:variable name="failedtests.list" select="results/test-case[@success='False']"/> <xsl:variable name="tests.count" select="count(results/test-case)"/> <xsl:variable name="passedtests.count" select="count($passedtests.list)"/> <xsl:variable name="ignoredtests.count" select="count($ignoredtests.list)"/> <xsl:variable name="failedtests.count" select="count($failedtests.list)"/> <xsl:variable name="storyId" select="generate-id()"/> <tr> <td valign="top"> <xsl:attribute name="onClick">javascript:ToggleVisible('<xsl:value-of select="$storyId"/>');</xsl:attribute> <a> <xsl:attribute name="name"><xsl:value-of select="@name" /></xsl:attribute> <xsl:value-of select="@name" /> </a> </td> <td width="100%"> <table border="1" cellspacing="1" width="100%"> <tr> <xsl:if test="$passedtests.count > 0"> <xsl:variable name="passedtests.countpercent" select="($passedtests.count * 100) div $tests.count"/> <td bgcolor="green"> <xsl:attribute name="width"><xsl:value-of select="$passedtests.countpercent"/>%</xsl:attribute>   </td> </xsl:if> <xsl:if test="$ignoredtests.count > 0"> <xsl:variable name="ignoredtests.countpercent" select="($ignoredtests.count * 100) div $tests.count"/> <td bgcolor="yellow"> <xsl:attribute name="width"><xsl:value-of select="$ignoredtests.countpercent"/>%</xsl:attribute>   </td> </xsl:if> <xsl:if test="$failedtests.count > 0"> <xsl:variable name="failedtests.countpercent" select="($failedtests.count * 100) div $tests.count"/> <td bgcolor="red"> <xsl:attribute name="width"><xsl:value-of select="$failedtests.countpercent"/>%</xsl:attribute>   </td> </xsl:if> </tr> </table> <xsl:if test="$failedtests.count > 0 or $ignoredtests.count > 0"> <div style="display:none"> <xsl:attribute name="id"><xsl:value-of select="$storyId"/></xsl:attribute> <table border="2" cell-padding="6" cell-spacing="0" width="100%"> <xsl:apply-templates select="$failedtests.list"/> <xsl:apply-templates select="$ignoredtests.list"/> </table> </div> </xsl:if> </td> <td valign="top"> (<xsl:value-of select="$passedtests.count"/>/<xsl:value-of select="$tests.count"/>) </td> </tr> </xsl:template> <xsl:template match="test-case[@success='False']"> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="class">unittests-oddrow</xsl:attribute> </xsl:if> <td bgcolor="red"><b>Failed</b></td> <td> <xsl:call-template name="getTestName"> <xsl:with-param name="name" select="@name"/> </xsl:call-template> </td> <td> <xsl:value-of select="substring-after(failure/message, '-')"/> </td> </tr> </xsl:template> <xsl:template match="test-case[@executed='False']"> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="class">unittests-oddrow</xsl:attribute> </xsl:if> <td bgcolor="yellow"><b>Ignored</b></td> <td> <xsl:call-template name="getTestName"> <xsl:with-param name="name" select="@name"/> </xsl:call-template> </td> <td> <xsl:value-of select="substring-after(reason/message, '-')"/> </td> </tr> </xsl:template> <xsl:template name="getTestName"> <xsl:param name="name"/> <xsl:choose> <xsl:when test="contains($name, '.')"> <xsl:call-template name="getTestName"> <xsl:with-param name="name" select="substring-after($name, '.')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$name"/> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> Index: distributables.xsl =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/web/xsl/distributables.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** distributables.xsl 23 Apr 2003 08:53:32 -0000 1.1 --- distributables.xsl 8 Aug 2003 11:22:52 -0000 1.2 *************** *** 1,40 **** <?xml version="1.0"?> - <!--******************************************************************************** - * CruiseControl, a Continuous Integration Toolkit - * Copyright (c) 2001, ThoughtWorks, Inc. - * 651 W Washington Ave. Suite 500 - * Chicago, IL 60661 USA - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * + Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * + Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the - * names of its contributors may be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ********************************************************************************--> - <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" --- 1,3 ---- Index: timing.xsl =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/web/xsl/timing.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** timing.xsl 23 Apr 2003 08:53:32 -0000 1.1 --- timing.xsl 8 Aug 2003 11:22:52 -0000 1.2 *************** *** 1,10 **** <?xml version="1.0"?> ! <xsl:stylesheet ! xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" ! xmlns:lxslt="http://xml.apache.org/xslt"> <xsl:output method="html"/> <xsl:variable name="testcase.list" select="//test-case"/> <xsl:template match="/"> <table cellpadding="2" cellspacing="0" border="0" width="98%"> --- 1,9 ---- <?xml version="1.0"?> ! <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:lxslt="http://xml.apache.org/xslt"> <xsl:output method="html"/> <xsl:variable name="testcase.list" select="//test-case"/> + <xsl:template match="/"> <table cellpadding="2" cellspacing="0" border="0" width="98%"> *************** *** 17,22 **** </tr> ! <xsl:apply-templates select="$testcase.list"/> ! <tr/> <tr><td colspan="2"> </td></tr> </table> --- 16,23 ---- </tr> ! <xsl:apply-templates select="$testcase.list"> ! <xsl:sort select="@time" order="descending" data-type="number" /> ! </xsl:apply-templates> ! <tr><td colspan="2"> </td></tr> </table> *************** *** 24,33 **** <xsl:template match="test-case"> - <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="class">unittests-oddrow</xsl:attribute> </xsl:if> - <td class="unittests-data"> <xsl:value-of select="./@name"/> --- 25,32 ---- *************** *** 44,48 **** </td> </tr> - </xsl:template> --- 43,46 ---- |
|
From: <exo...@us...> - 2003-08-08 11:22:55
|
Update of /cvsroot/ccnet/ccnet/project/core/test
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/core/test
Modified Files:
IntegrationResultMother.cs
Log Message:
added NetSendPublisher, and test results web page
Index: IntegrationResultMother.cs
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/test/IntegrationResultMother.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** IntegrationResultMother.cs 23 Apr 2003 08:37:01 -0000 1.1
--- IntegrationResultMother.cs 8 Aug 2003 11:22:51 -0000 1.2
***************
*** 34,37 ****
--- 34,44 ----
return Create(false, DateTime.Now);
}
+
+ public static IntegrationResult CreateFixed()
+ {
+ IntegrationResult result = CreateSuccessful();
+ result.LastIntegrationStatus = IntegrationStatus.Failure;
+ return result;
+ }
}
}
|
|
From: <exo...@us...> - 2003-08-08 11:22:55
|
Update of /cvsroot/ccnet/ccnet/project/service/test In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/service/test Modified Files: ServiceTest.cs Log Message: added NetSendPublisher, and test results web page Index: ServiceTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/service/test/ServiceTest.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ServiceTest.cs 23 Apr 2003 08:53:31 -0000 1.1 --- ServiceTest.cs 8 Aug 2003 11:22:52 -0000 1.2 *************** *** 20,24 **** //execute ! CruiseControlInstaller i = new CruiseControlInstaller(); //verify --- 20,24 ---- //execute ! ProjectInstaller i = new ProjectInstaller(); //verify |
|
From: <exo...@us...> - 2003-08-08 11:22:55
|
Update of /cvsroot/ccnet/ccnet/project/core/publishers/test
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/core/publishers/test
Modified Files:
NetSendPublisherTest.cs
Log Message:
added NetSendPublisher, and test results web page
Index: NetSendPublisherTest.cs
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/publishers/test/NetSendPublisherTest.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** NetSendPublisherTest.cs 25 Jul 2003 12:36:30 -0000 1.1
--- NetSendPublisherTest.cs 8 Aug 2003 11:22:51 -0000 1.2
***************
*** 1,17 ****
using System;
using NUnit.Framework;
namespace tw.ccnet.core.publishers.test
{
[TestFixture]
! public class NetSendPublisherTest
{
! // load config
! // read recipients
! // how to verify success - need to verify/close open window
[Test]
! public void NetSend()
{
}
}
--- 1,182 ----
using System;
+ using System.Diagnostics;
+ using System.Text;
+ using System.Windows.Forms;
+ using System.Runtime.InteropServices;
using NUnit.Framework;
+ using NMock;
+ using NMock.Constraints;
+ using Exortech.NetReflector;
+ using tw.ccnet.core.util;
+ using tw.ccnet.core.test;
namespace tw.ccnet.core.publishers.test
{
[TestFixture]
! public class NetSendPublisherTest : CustomAssertion
{
! [Test]
! public void LoadMinXmlFromConfig()
! {
! string xml = @"
! <netsend>
! <names>orogers</names>
! </netsend>";
!
! object result = new XmlPopulator().Populate(XmlUtil.CreateDocumentElement(xml));
! AssertNotNull(result);
! AssertEquals(typeof(NetSendPublisher), result.GetType());
!
! NetSendPublisher netsend = result as NetSendPublisher;
! AssertEquals("orogers", netsend.Names);
! }
[Test]
! public void LoadMaxXmlFromConfig()
! {
! string xml = @"
! <netsend>
! <names>orogers</names>
! <failedMessage>DOH!</failedMessage>
! <fixedMessage>YAHOO!</fixedMessage>
! </netsend>";
!
! object result = new XmlPopulator().Populate(XmlUtil.CreateDocumentElement(xml));
! AssertNotNull(result);
! AssertEquals(typeof(NetSendPublisher), result.GetType());
!
! NetSendPublisher netsend = result as NetSendPublisher;
! AssertEquals("orogers", netsend.Names);
! AssertEquals("DOH!", netsend.FailedMessage);
! AssertEquals("YAHOO!", netsend.FixedMessage);
! }
!
! [Test]
! public void ShouldSendMessage()
! {
! NetSendPublisher publisher = new NetSendPublisher();
! AssertFalse("message should not be sent", publisher.ShouldSendMessage(IntegrationResultMother.CreateSuccessful()));
! Assert("message should be sent", publisher.ShouldSendMessage(IntegrationResultMother.CreateFailed()));
! Assert("message should be sent", publisher.ShouldSendMessage(IntegrationResultMother.CreateFixed()));
! }
!
! [Test]
! public void BuildFailedMessage()
! {
! IntegrationResult result = CreateFailedIntegrationResult();
! NetSendPublisher publisher = new NetSendPublisher();
! string expected = "BUILD FAILED!\nLast comment: mod\nLast committer: owen";
! AssertEquals(expected, publisher.GetMessage(result));
!
! publisher.FailedMessage = "foo";
! AssertEquals("foo\nLast comment: mod\nLast committer: owen", publisher.GetMessage(result));
! }
!
! private IntegrationResult CreateFailedIntegrationResult()
! {
! IntegrationResult result = IntegrationResultMother.CreateFailed();
! result.Modifications = new Modification[1];
! result.Modifications[0] = new Modification();
! result.Modifications[0].Comment = "mod";
! result.Modifications[0].UserName = "owen";
! return result;
! }
!
! [Test]
! public void BuildFailedMessage_NoModifications()
{
+ NetSendPublisher publisher = new NetSendPublisher();
+ string expected = "BUILD FAILED!\nLast comment: Unknown\nLast committer: Unknown";
+ AssertEquals(expected, publisher.GetMessage(IntegrationResultMother.CreateFailed()));
+ }
+
+ [Test]
+ public void BuildFixedMessage()
+ {
+ IntegrationResult result = IntegrationResultMother.CreateFixed();
+ NetSendPublisher publisher = new NetSendPublisher();
+ AssertEquals("BUILD FIXED!", publisher.GetMessage(result));
+
+ publisher.FixedMessage = "fixerama";
+ AssertEquals("fixerama", publisher.GetMessage(result));
+ }
+
+ [Test]
+ public void Publish()
+ {
+ DynamicMock mockPublisher = new DynamicMock(typeof(NetSendPublisher));
+ mockPublisher.Ignore("Publish");
+ mockPublisher.ExpectAndReturn("ExecuteProcess", 0, new NMock.Constraints.IsTypeOf(typeof(Process)));
+
+ NetSendPublisher publisher = (NetSendPublisher)mockPublisher.MockInstance;
+ publisher.Names = "localhost";
+ publisher.Publish(null, IntegrationResultMother.CreateFailed());
+
+ mockPublisher.Verify();
+ }
+
+ [Test]
+ public void PublishToMultipleNames()
+ {
+ CollectingConstraint process1 = new CollectingConstraint();
+ CollectingConstraint process2 = new CollectingConstraint();
+ CollectingConstraint process3 = new CollectingConstraint();
+
+ DynamicMock mockPublisher = new DynamicMock(typeof(NetSendPublisher));
+ mockPublisher.Ignore("Publish");
+ mockPublisher.ExpectAndReturn("ExecuteProcess", 0, process1);
+ mockPublisher.ExpectAndReturn("ExecuteProcess", 0, process2);
+ mockPublisher.ExpectAndReturn("ExecuteProcess", 0, process3);
+
+ NetSendPublisher publisher = (NetSendPublisher)mockPublisher.MockInstance;
+ publisher.Names = "machine1,machine2,machine3";
+
+ publisher.Publish(null, IntegrationResultMother.CreateFailed());
+
+ mockPublisher.Verify();
+ AssertEquals(@"send ""machine1""", ((Process)process1.Parameter).StartInfo.Arguments.Substring(0, 15));
+ AssertEquals(@"send ""machine2""", ((Process)process2.Parameter).StartInfo.Arguments.Substring(0, 15));
+ AssertEquals(@"send ""machine3""", ((Process)process3.Parameter).StartInfo.Arguments.Substring(0, 15));
+ }
+
+ [Test, Ignore("move to acceptance tests")]
+ public void Send()
+ {
+ NetSendPublisher publisher = new NetSendPublisher();
+ publisher.Names = "localhost";
+ publisher.Publish(null, CreateFailedIntegrationResult());
+
+ Win32Window window = Win32Window.Find("Messenger Service ");
+ AssertNotNull(window);
+ window.Close();
+ }
+
+ public class Win32Window
+ {
+ private const int WM_SYSCOMMAND = 0x0112;
+ private const int SC_CLOSE = 0xF060;
+ private IntPtr hWnd;
+
+ public Win32Window(IntPtr hWnd)
+ {
+ this.hWnd = hWnd;
+ }
+
+ public void Close()
+ {
+ SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
+ }
+
+ public static Win32Window Find(string title)
+ {
+ int hwnd = FindWindow(null, title);
+ return hwnd == 0 ? null : new Win32Window(new IntPtr(hwnd));
+ }
+
+ [DllImport("user32.dll", EntryPoint="FindWindow")]
+ private static extern int FindWindow(string className, string windowName);
+
+ [DllImport("user32.dll", CharSet=CharSet.Auto)]
+ public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
}
}
|
|
From: <exo...@us...> - 2003-08-08 11:22:54
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol/test
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/core/sourcecontrol/test
Modified Files:
CvsTest.cs
Log Message:
added NetSendPublisher, and test results web page
Index: CvsTest.cs
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/test/CvsTest.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** CvsTest.cs 11 Jul 2003 19:27:10 -0000 1.2
--- CvsTest.cs 8 Aug 2003 11:22:51 -0000 1.3
***************
*** 11,19 ****
{
[TestFixture]
! public class CvsTest
{
! public static string CreateSourceControlXml(string cvsroot)
{
cvsroot = (cvsroot == null) ? String.Empty : "<cvsroot>" + cvsroot + "</cvsroot>";
return String.Format(
@" <sourceControl type=""cvs"">
--- 11,21 ----
{
[TestFixture]
! public class CvsTest : Assertion
{
! public static string CreateSourceControlXml(string cvsroot, string branch)
{
cvsroot = (cvsroot == null) ? String.Empty : "<cvsroot>" + cvsroot + "</cvsroot>";
+ branch = (branch == null) ? String.Empty : "<branch>" + branch + "</branch>";
+
return String.Format(
@" <sourceControl type=""cvs"">
***************
*** 21,38 ****
<workingDirectory>..</workingDirectory>
{0}
</sourceControl>
"
! , cvsroot);
}
! public void TestValuePopulation()
{
! Cvs cvs = CreateCvs();
! Assertion.AssertEquals(@"..\tools\cvs.exe", cvs.Executable);
! Assertion.AssertEquals("..",cvs.WorkingDirectory);
! Assertion.AssertEquals("myCvsRoot", cvs.CvsRoot);
}
! public void TestCreateProcess()
{
Cvs cvs = CreateCvs();
--- 23,44 ----
<workingDirectory>..</workingDirectory>
{0}
+ {1}
</sourceControl>
"
! , cvsroot, branch);
}
! [Test]
! public void ValuePopulation()
{
! Cvs cvs = CreateCvs(CreateSourceControlXml("myCvsRoot", "branch"));
! AssertEquals(@"..\tools\cvs.exe", cvs.Executable);
! AssertEquals("..",cvs.WorkingDirectory);
! AssertEquals("myCvsRoot", cvs.CvsRoot);
! AssertEquals("branch", cvs.Branch);
}
! [Test]
! public void CreateProcess()
{
Cvs cvs = CreateCvs();
***************
*** 40,51 ****
Process actualProcess = cvs.CreateHistoryProcess(from, new DateTime());
! string expected = String.Format(@"-d myCvsRoot -q log -N ""-d>{0}""", cvs.FormatCommandDate(from));
string actual = actualProcess.StartInfo.Arguments;
! Assertion.AssertEquals(expected, actual);
}
! public void TestCreateProcess_MissingCvsRoot()
{
! Cvs cvs = CreateCvs(null);
DateTime from = new DateTime(2001, 1, 21, 20, 0, 0);
Process actualProcess = cvs.CreateHistoryProcess(from, new DateTime());
--- 46,71 ----
Process actualProcess = cvs.CreateHistoryProcess(from, new DateTime());
! string expected = String.Format(@"-q log -N ""-d>{0}""", cvs.FormatCommandDate(from));
string actual = actualProcess.StartInfo.Arguments;
! AssertEquals(expected, actual);
}
! [Test]
! public void HistoryArgs()
{
! DateTime from = new DateTime(2001, 1, 21, 20, 0, 0);
!
! Cvs cvs = new Cvs();
! cvs.CvsRoot = "myCvsRoot";
! cvs.Branch = "branch";
! string args = cvs.BuildHistoryProcessArgs(from);
! string expected = String.Format(@"-d myCvsRoot -q log -N ""-d>{0}"" -rbranch", cvs.FormatCommandDate(from));
! AssertEquals(expected, args);
! }
!
! [Test]
! public void CreateProcess_MissingCvsRoot()
! {
! Cvs cvs = CreateCvs();
DateTime from = new DateTime(2001, 1, 21, 20, 0, 0);
Process actualProcess = cvs.CreateHistoryProcess(from, new DateTime());
***************
*** 53,84 ****
string expected = String.Format(@"-q log -N ""-d>{0}""", cvs.FormatCommandDate(from));
string actual = actualProcess.StartInfo.Arguments;
! Assertion.AssertEquals(expected, actual);
}
! public void TestLabelOnSuccessProcess()
{
! Cvs cvs = CreateCvs(null);
! Assertion.AssertNull(cvs.CreateLabelProcess("", new DateTime()));
cvs.LabelOnSuccess = true;
! Assertion.AssertNotNull(cvs.CreateLabelProcess("", new DateTime()));
}
! public void TestExecutable_default()
{
! Assertion.AssertEquals("cvs.exe", new Cvs().Executable);
}
private Cvs CreateCvs()
{
! return CreateCvs("myCvsRoot");
}
! private Cvs CreateCvs(string cvsroot)
{
XmlPopulator populator = new XmlPopulator();
Cvs cvs = new Cvs();
! populator.Populate(XmlUtil.CreateDocumentElement(CreateSourceControlXml(cvsroot)), cvs);
return cvs;
}
--- 73,106 ----
string expected = String.Format(@"-q log -N ""-d>{0}""", cvs.FormatCommandDate(from));
string actual = actualProcess.StartInfo.Arguments;
! AssertEquals(expected, actual);
}
! [Test]
! public void LabelOnSuccessProcess()
{
! Cvs cvs = CreateCvs();
! AssertNull(cvs.CreateLabelProcess("", new DateTime()));
cvs.LabelOnSuccess = true;
! AssertNotNull(cvs.CreateLabelProcess("", new DateTime()));
}
! [Test]
! public void Executable_default()
{
! AssertEquals("cvs.exe", new Cvs().Executable);
}
private Cvs CreateCvs()
{
! return CreateCvs(CreateSourceControlXml(null, null));
}
! private Cvs CreateCvs(string xml)
{
XmlPopulator populator = new XmlPopulator();
Cvs cvs = new Cvs();
! populator.Populate(XmlUtil.CreateDocumentElement(xml), cvs);
return cvs;
}
|
|
From: <exo...@us...> - 2003-08-08 11:22:54
|
Update of /cvsroot/ccnet/ccnet/project/core/publishers
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/core/publishers
Modified Files:
NetSendPublisher.cs
Log Message:
added NetSendPublisher, and test results web page
Index: NetSendPublisher.cs
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/publishers/NetSendPublisher.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** NetSendPublisher.cs 25 Jul 2003 12:36:30 -0000 1.1
--- NetSendPublisher.cs 8 Aug 2003 11:22:51 -0000 1.2
***************
*** 1,8 ****
using System;
namespace tw.ccnet.core.publishers
{
! public class NetSendPublisher
{
}
}
--- 1,73 ----
using System;
+ using System.Diagnostics;
+ using Exortech.NetReflector;
+ using tw.ccnet.remote;
+ using tw.ccnet.core.util;
namespace tw.ccnet.core.publishers
{
! [ReflectorType("netsend")]
! public class NetSendPublisher : PublisherBase
{
+ [ReflectorProperty("names")]
+ public string Names;
+
+ [ReflectorProperty("failedMessage", Required=false)]
+ public string FailedMessage = "BUILD FAILED!";
+
+ [ReflectorProperty("fixedMessage", Required=false)]
+ public string FixedMessage = "BUILD FIXED!";
+
+ public override void Publish(object source, IntegrationResult result)
+ {
+ if (ShouldSendMessage(result))
+ {
+ string[] names = Names.Split(',');
+ foreach (string name in names)
+ {
+ Send(name, GetMessage(result));
+ }
+ }
+ }
+
+ internal bool ShouldSendMessage(IntegrationResult result)
+ {
+ return result.Failed || result.Fixed;
+ }
+
+ internal string GetMessage(IntegrationResult result)
+ {
+ if (result.Failed)
+ {
+ string comment = result.Modifications.Length == 0 ? "Unknown" : result.Modifications[0].Comment;
+ string committer = result.Modifications.Length == 0 ? "Unknown" : result.Modifications[0].UserName;
+ return String.Format("{2}\nLast comment: {0}\nLast committer: {1}", comment, committer, FailedMessage);
+ }
+ else
+ {
+ return FixedMessage;
+ }
+ }
+
+ internal int Send(string name, string message)
+ {
+ Process process = ProcessUtil.CreateProcess("net", String.Format("send \"{0}\" \"{1}\"", name, message));
+ process.StartInfo.UseShellExecute = false;
+ return ExecuteProcess(process);
+ }
+
+ protected virtual int ExecuteProcess(Process process)
+ {
+ try
+ {
+ process.Start();
+ process.WaitForExit();
+ return process.ExitCode;
+ }
+ finally
+ {
+ process.Close();
+ }
+ }
}
}
|
|
From: <exo...@us...> - 2003-08-08 11:22:54
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/core/sourcecontrol
Modified Files:
Cvs.cs
Log Message:
added NetSendPublisher, and test results web page
Index: Cvs.cs
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/Cvs.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Cvs.cs 11 Jul 2003 19:27:10 -0000 1.4
--- Cvs.cs 8 Aug 2003 11:22:51 -0000 1.5
***************
*** 10,14 ****
public class Cvs : ProcessSourceControl
{
! internal readonly static string HISTORY_COMMAND_FORMAT = "{0}-q log -N \"-d>{1}\"";
internal readonly static string COMMAND_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss 'GMT'";
--- 10,14 ----
public class Cvs : ProcessSourceControl
{
! internal readonly static string HISTORY_COMMAND_FORMAT = @"{0}-q log -N ""-d>{1}""{2}";
internal readonly static string COMMAND_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss 'GMT'";
***************
*** 23,28 ****
public string Executable
{
! get{ return _executable;}
! set{ _executable = value;}
}
--- 23,28 ----
public string Executable
{
! get { return _executable;}
! set { _executable = value;}
}
***************
*** 30,35 ****
public string CvsRoot
{
! get{ return _cvsRoot;}
! set{ _cvsRoot = value;}
}
--- 30,35 ----
public string CvsRoot
{
! get { return _cvsRoot;}
! set { _cvsRoot = value;}
}
***************
*** 37,42 ****
public string WorkingDirectory
{
! get{ return _workingDirectory;}
! set{ _workingDirectory = value;}
}
--- 37,42 ----
public string WorkingDirectory
{
! get { return _workingDirectory;}
! set { _workingDirectory = value;}
}
***************
*** 44,51 ****
public bool LabelOnSuccess
{
! get{ return _labelOnSuccess;}
! set{ _labelOnSuccess = value;}
}
protected override IHistoryParser HistoryParser
{
--- 44,54 ----
public bool LabelOnSuccess
{
! get { return _labelOnSuccess;}
! set { _labelOnSuccess = value;}
}
+ [ReflectorProperty("branch", Required=false)]
+ public string Branch;
+
protected override IHistoryParser HistoryParser
{
***************
*** 83,92 ****
// include that for some harmony with the vss version
string cvsroot = (CvsRoot == null) ? String.Empty : "-d " + CvsRoot + " ";
! string args = String.Format(HISTORY_COMMAND_FORMAT,
! cvsroot,
! FormatCommandDate(from));
! return args;
! }
!
}
}
--- 86,92 ----
// include that for some harmony with the vss version
string cvsroot = (CvsRoot == null) ? String.Empty : "-d " + CvsRoot + " ";
! string branch = (Branch == null) ? String.Empty : " -r" + Branch;
! return String.Format(HISTORY_COMMAND_FORMAT, cvsroot, FormatCommandDate(from), branch);
! }
}
}
|
|
From: <exo...@us...> - 2003-08-08 11:22:54
|
Update of /cvsroot/ccnet/ccnet/project
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project
Modified Files:
ccnet2002.sln
Log Message:
added NetSendPublisher, and test results web page
Index: ccnet2002.sln
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/ccnet2002.sln,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ccnet2002.sln 16 May 2003 19:25:36 -0000 1.1
--- ccnet2002.sln 8 Aug 2003 11:22:51 -0000 1.2
***************
*** 1,15 ****
Microsoft Visual Studio Solution File, Format Version 7.00
- Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ccnet2002.remote", "ccnet.remote\ccnet2002.remote.csproj", "{E820CF3B-8C5A-4002-BC16-B7818D3D54A8}"
- EndProject
- Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "console2002", "console\console2002.csproj", "{E14EE67D-C24E-4088-B01B-35B742E99E85}"
- EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "core2002", "core\core2002.csproj", "{F8113DB9-6C47-4FD1-8A01-655FCF151747}"
EndProject
- Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "integration2002", "integration\integration2002.csproj", "{BDFCDEE6-98EC-499C-8792-47D2DFC08647}"
- EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "service2002", "service\service2002.csproj", "{4DE3AEAD-FAFB-4D15-A0D7-3A9AAECF08E1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "web2002", "web\web2002.csproj", "{317E46BA-74DE-411D-A09D-37193EEFD856}"
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
--- 1,11 ----
Microsoft Visual Studio Solution File, Format Version 7.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "core2002", "core\core2002.csproj", "{F8113DB9-6C47-4FD1-8A01-655FCF151747}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "service2002", "service\service2002.csproj", "{4DE3AEAD-FAFB-4D15-A0D7-3A9AAECF08E1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "web2002", "web\web2002.csproj", "{317E46BA-74DE-411D-A09D-37193EEFD856}"
EndProject
+ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ccnet2002.remote", "ccnet.remote\ccnet2002.remote.csproj", "{E820CF3B-8C5A-4002-BC16-B7818D3D54A8}"
+ EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
***************
*** 20,39 ****
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
- {E820CF3B-8C5A-4002-BC16-B7818D3D54A8}.Debug.ActiveCfg = Debug|.NET
- {E820CF3B-8C5A-4002-BC16-B7818D3D54A8}.Debug.Build.0 = Debug|.NET
- {E820CF3B-8C5A-4002-BC16-B7818D3D54A8}.Release.ActiveCfg = Release|.NET
- {E820CF3B-8C5A-4002-BC16-B7818D3D54A8}.Release.Build.0 = Release|.NET
- {E14EE67D-C24E-4088-B01B-35B742E99E85}.Debug.ActiveCfg = Debug|.NET
- {E14EE67D-C24E-4088-B01B-35B742E99E85}.Debug.Build.0 = Debug|.NET
- {E14EE67D-C24E-4088-B01B-35B742E99E85}.Release.ActiveCfg = Release|.NET
- {E14EE67D-C24E-4088-B01B-35B742E99E85}.Release.Build.0 = Release|.NET
{F8113DB9-6C47-4FD1-8A01-655FCF151747}.Debug.ActiveCfg = Debug|.NET
{F8113DB9-6C47-4FD1-8A01-655FCF151747}.Debug.Build.0 = Debug|.NET
{F8113DB9-6C47-4FD1-8A01-655FCF151747}.Release.ActiveCfg = Release|.NET
{F8113DB9-6C47-4FD1-8A01-655FCF151747}.Release.Build.0 = Release|.NET
- {BDFCDEE6-98EC-499C-8792-47D2DFC08647}.Debug.ActiveCfg = Debug|.NET
- {BDFCDEE6-98EC-499C-8792-47D2DFC08647}.Debug.Build.0 = Debug|.NET
- {BDFCDEE6-98EC-499C-8792-47D2DFC08647}.Release.ActiveCfg = Release|.NET
- {BDFCDEE6-98EC-499C-8792-47D2DFC08647}.Release.Build.0 = Release|.NET
{4DE3AEAD-FAFB-4D15-A0D7-3A9AAECF08E1}.Debug.ActiveCfg = Debug|.NET
{4DE3AEAD-FAFB-4D15-A0D7-3A9AAECF08E1}.Debug.Build.0 = Debug|.NET
--- 16,23 ----
***************
*** 44,47 ****
--- 28,35 ----
{317E46BA-74DE-411D-A09D-37193EEFD856}.Release.ActiveCfg = Release|.NET
{317E46BA-74DE-411D-A09D-37193EEFD856}.Release.Build.0 = Release|.NET
+ {E820CF3B-8C5A-4002-BC16-B7818D3D54A8}.Debug.ActiveCfg = Debug|.NET
+ {E820CF3B-8C5A-4002-BC16-B7818D3D54A8}.Debug.Build.0 = Debug|.NET
+ {E820CF3B-8C5A-4002-BC16-B7818D3D54A8}.Release.ActiveCfg = Release|.NET
+ {E820CF3B-8C5A-4002-BC16-B7818D3D54A8}.Release.Build.0 = Release|.NET
EndGlobalSection
GlobalSection(SolutionItems) = postSolution
|
|
From: <exo...@us...> - 2003-08-08 11:22:54
|
Update of /cvsroot/ccnet/ccnet/project/core
In directory sc8-pr-cvs1:/tmp/cvs-serv3676/project/core
Modified Files:
IntegrationResult.cs core2002.csproj
Log Message:
added NetSendPublisher, and test results web page
Index: IntegrationResult.cs
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/IntegrationResult.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** IntegrationResult.cs 28 Apr 2003 22:41:36 -0000 1.2
--- IntegrationResult.cs 8 Aug 2003 11:22:51 -0000 1.3
***************
*** 142,145 ****
--- 142,150 ----
}
+ public bool Fixed
+ {
+ get { return Succeeded && LastIntegrationStatus == IntegrationStatus.Failure; }
+ }
+
public TimeSpan TotalIntegrationTime
{
Index: core2002.csproj
===================================================================
RCS file: /cvsroot/ccnet/ccnet/project/core/core2002.csproj,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** core2002.csproj 25 Jul 2003 12:36:28 -0000 1.2
--- core2002.csproj 8 Aug 2003 11:22:51 -0000 1.3
***************
*** 98,101 ****
--- 98,106 ----
Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
/>
+ <Reference
+ Name = "System.Windows.Forms"
+ AssemblyName = "System.Windows.Forms"
+ HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.0.3705\System.Windows.Forms.dll"
+ />
</References>
</Build>
|