Commit graph

31 commits

Author SHA1 Message Date
Daniel Plaisted
6fd4a5afad Refactor tests, add coverage for building templates 2018-11-20 10:53:39 -08:00
Daniel Plaisted
96c79f9661 Enable tests 2018-10-29 11:26:53 -07:00
Daniel Plaisted
2b134c91fe Support new artifacts layout in tests and other build logic
(cherry picked from commit 13da213183)
2017-09-27 14:20:05 -07:00
jonsequitur
1b8b1d2b2c use muxer path whenever invoking dotnet 2017-03-21 14:56:12 -07:00
Jon Sequeira
3c90711938 remove console output 2017-03-20 13:45:37 -07:00
Jon Sequeira
800f19dfdc use muxer in TestCommand 2017-03-19 20:28:38 -07:00
Piotr Puszkiewicz
2fbafe6f3f Remove StreamForwarder from CLI tests (#4936)
* WiP

* Replace StreamForwarder with OutputDataReceived

* Add build logging around test execution

* add newlines

* Add handling for the null terminator while maintaining empty lines

* Extra Diag

* Verbose logging for VS Test Console

* Fix asset file locking tests

* Add testcommand timeout + improve dotnet-new tests

* WiP

* Welcome, JoSequ!

* Fix failing tests

* Clean out diagnostics writelines

* self-PR1
2016-12-13 14:15:35 -08:00
Piotr Puszkiewicz
d6cab4af58 use Sdks attribute in dotnet new templates (#4916)
* Move dotnet-new templates to Sdk attribute

* Update to MSBuild 15.1.0-preview-000454-01

To pick up a fix for Microsoft/msbuild#1431.

* Fix template newlines

* Fix casing on Microsoft.Net.Sdk

* Move migration test csproj's to Sdk attribute

* Disable parallel sdk restore

Each SDK restore operation will try to manipulate the same assets.json file since the dependency name&version are injected into a common csproj file. This can cause runtime failures when two NuGets try to restore the project at once.

* Make casing of SDK 'NET' and not 'Net'

* Remove redundatn imports

* Fix test string

* Additional race

* Replacing the SDK with the Web.Sdk when it is a Web project.

* Fixing the test by writting the csproj before running the migration rule.
2016-12-04 22:31:58 -08:00
Piotr Puszkiewicz
caad95491a Fix output race (#4911)
* Fix output race

TestCommand starts the test process before wiring up stderr & stdout. This change delays process start until after the wireup is finished so that the test process cannot shut down before we have wired up output redirection.

* Bypass stream forwarder when it fails to attach to a process

CLI has tests failing errenously when, due to timing issues, the StreamForwarders fail to attach to a process because it managed to exit before attachment occurs. 

We tried attaching the forwarders prior to Process Start but this proved impossible because the OUT and ERR streams are not available to attach before the process starts. 

This exposes a fundamental flaw in our output redirection mechanisms. We should probably move to using https://msdn.microsoft.com/en-us/library/system.diagnostics.process.outputdatareceived.aspx or a similar mechanism. However, I don't know that @brthor hadn't considered and discarded this approach.

For the time being I am attempting to make tests more deterministic by capturing the associated exceptions and moving to a different mechanism when StreamForwarders are not available.

Opened https://github.com/dotnet/cli/issues/4913 to track the broader issue.

* File.Copy is not atomic...
2016-12-04 11:54:29 -08:00
Piotr Puszkiewicz
d2d0353e60 Include Microsoft.Net.Sdk in CLI layout (#4895)
* WiP

* Update test

* Working version of Net SDK

* Latest SDK doesn't work as packageref

* DCR + PR

* Harden CLI tests against #4884
2016-12-03 14:19:54 -08:00
Piotr Puszkiewicz
6fcbefa4f7 [WIP] Removes *3 verbs, making msbuild the driver (#4456)
Removes *3 verbs, making msbuild the driver
2016-10-27 18:46:43 -07:00
Piotr Puszkiewicz
94e620088e Test Infrastructure Updates
Creates a TestDirectory abstraction under TestInstance to manage creation of test-specific working directories
Enables TestAssetManager to create TestDirectory instances
Enables fluent addition of Environment Variables to TestCommand
Adds PathUtility support for ensuring a directory exists
2016-05-03 10:36:05 -07:00
Eric Erhardt
2ed81240fa dotnet build fails with xmlDoc = true and spaces in the path.
Need to quote the xmlDoc argument to the csc compiler.

Fix #2600
2016-04-27 15:43:12 -05:00
Sridhar Periyasamy
c82d3cc08d Add Binding redirects tests 2016-04-25 11:06:13 -07:00
Andrew Stanton-Nurse
ef0ca39da1 Memory usage improvements in build (#2626)
* Use a WorkspaceContext in dotnet-build to cache project data across
multiple compilations in a single build action
* Dramatically reduce string and object duplication by introducing a
"Symbol Table" that shares instances of NuGetVersion, NuGetFramework,
VersionRange and string across multiple lock-file parses

Test Results:
* Testing was done by compiling Microsoft.AspNetCore.Mvc (and it's
dependencies) and taking memory snapshots after each compilation in
dotMemory
* We used to allocate ~3MB and deallocate ~2.5MB on EACH compilation in
a single build action. This has been reduced to ~120KB
allocated/deallocated
* After introducing WorkspaceContext, total memory usage spiked from 6MB
across the whole build action to about 13MB, introducing the symbol
table dropped it back to about 5-6MB.
2016-04-22 15:01:56 -07:00
Sridhar Periyasamy
8f00b95783 Add kestrel tests.
Tests will 'build', 'run', 'publish' and 'execute' a Kestrel Hello World server as a PortableFatApp and as a Standalone app.
2016-04-04 17:57:12 -07:00
piotrp
1a42fa05a4 Add WorkingDirectory to TestCommand 2016-03-28 17:25:52 -07:00
Bryan Thornbury
97a01213ac Fix debian packages 2016-03-22 15:01:01 -07:00
Andrew Stanton-Nurse
cc00d9d839 update project templates for portable app
also fix dotnet run
2016-03-15 15:18:48 -07:00
David Fowler
69b5e3f815 Fixing versions
- Added --version-suffix to build and publish
- Support reading DOTNET_* version variables everywhere versions can be read
- Show the commit sha in dotnet --version
- Added tests that check the assembly output version
- Set DOTNET_BUILD_VERSION when producing the CLI app itself so that it has the version information stamped in for help.
2016-02-18 01:10:07 -08:00
Piotr Puszkiewicz
d9b54cecac Merge branch 'PackagedCommands' of https://github.com/eerhardt/cli into eerhardt-PackagedCommands 2016-02-16 21:20:57 -08:00
Bryan Thornbury
c1e28ae921 Refactor ScriptExecutor, add test cases for scriptexecutor.
Add TargetFramework and FullTargetFramework to compile and publish script
variables.

Add ProjectLocal Command Resolution Strategy.

Fixup ArgumentEscaper to not always quote things.

Fixes #1216
Fixes #1016
Fixes #982
2016-02-12 11:04:30 -08:00
Eric Erhardt
5d04ca1fe3 Move PackagedCommands to TestAssets.
Convert package-command-test.ps1 to an XUnit test.
2016-02-10 15:05:25 -06:00
Bryan Thornbury
ccaaebf6e5 Stream Forwarding changes to not wait on buffer full before writing. Instead input streams will be read character by character as they Console.Write or Console.WriteLine. Upon finding a newline character, the line will be printed to the parent process's console. 2016-02-08 14:19:02 -08:00
piotrp
a66546d8fb Maintain test artifacts
Improved test diagnostics
Providing diagnostics about failed process.
Workaround for https://github.com/NuGet/Home/issues/1977
get past crossgen errors!
2016-01-26 23:25:39 -08:00
Bryan Thornbury
d1d23944df Changes to fix publish tests 2016-01-23 13:01:34 -08:00
piotrp
9c5e520285 various fixes 2016-01-23 13:01:33 -08:00
Bryan
37445f053d Test Changes to work with new Argument Escaping and Command Infra 2016-01-23 13:01:32 -08:00
Andrew Stanton-Nurse
78cef18e1c add support for generating xml documentation
fixes #312
2016-01-08 14:02:41 -08:00
Bryan
18d17ce8c5 End to End Test Refactoring. Build upon Publish Test Infrastructure and add
capability for further testing.s enter the commit message for your changes. Lines starting
2016-01-05 13:40:33 -08:00
Sridhar Periyasamy
07eb7ef28f Dotnet publish tests 2015-12-14 17:39:29 -08:00