From a290c278b68501080dbe7d933a2c6e53cce74de3 Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 8 Sep 2015 14:33:52 -0700 Subject: [PATCH 01/21] Pesters tests for Select-String --- src/pester-tests/Test-Select-String.Tests.ps1 | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 src/pester-tests/Test-Select-String.Tests.ps1 diff --git a/src/pester-tests/Test-Select-String.Tests.ps1 b/src/pester-tests/Test-Select-String.Tests.ps1 new file mode 100644 index 000000000..0eed891a6 --- /dev/null +++ b/src/pester-tests/Test-Select-String.Tests.ps1 @@ -0,0 +1,145 @@ +Describe ".\Test-Select-String" { + Context "String actions" { + $testInputOne = "Hello","HELLO", "Goodbye" + $testInputTwo = "Hello","HELLO" + + It "Should be called with out error" { + { $testInputOne | Select-String -Pattern "HELLO" } | Should Not Throw + } + + It "Should be called without error using the sls alias" { + { $testInputOne | sls -Pattern "HELLO" } | Should Not Throw + } + + It "Should return an array data type when multiple matches are found" { + ( $testInputTwo | Select-String -Pattern "HELLO").GetType().BaseType | Should Be Array + } + + It "Should return an array of matches when multiple matches are found" { + $testInputOne | Select-String -Pattern "HELLO" | Should Be "HELLO", "Hello" + } + + It "Should return an object type when one match is found" { + # look into the aliases for the switches. ca for case-sensitive, n for notmatch, etc + ( $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive).GetType().BaseType | Should Be System.Object + } + + It "Should only return the case sensitive match when the casesensitive switch is used" { + $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive | Should Be "HELLO" + } + + It "Should accept a collection of strings from the input object"{ + { Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Other" } | Should Not Throw + } + + It "Should return System.Object when the input object switch is used on a collection"{ + ( Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Other" ).GetType().BaseType | Should Be System.Object + } + + It "Should return null or empty when the input object switch is used on a collection and the pattern does not exist"{ + Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Neither" | Should BeNullOrEmpty + } + + It "Should return a bool type when the quiet switch is used"{ + ($testInputTwo | Select-String -Quiet "HELLO" -CaseSensitive).GetType() | Should Be bool + } + + It "Should be true when select string returns a positive result when the quiet switch is used"{ + ($testInputTwo | Select-String -Quiet "HELLO" -CaseSensitive) | Should Be TRUE + } + + It "Should be empty when select string does not return a result when the quiet switch is used"{ + $testInputTwo | Select-String -Quiet "Goodbye" | Should BeNullOrEmpty + } + + It "Should return an array of non matching strings when the switch of NotMatch is used and the string do not match"{ + $testInputOne | Select-String -Pattern "Goodbye" -NotMatch | Should Be "HELLO", "Hello" + } + } + + Context "Filesytem actions" { + $testInputFile = "/tmp/testfile1.txt" + BeforeEach { + New-Item $testInputFile -Itemtype "file" -Force -Value "This is a text string, and another string`nThis is the second line`nThis is the third line`nThis is the fourth line`nNo matches" + } + + It "Should return an object when a match is found is the file on only one line"{ + (Select-String $testInputFile -Pattern "string").GetType().BaseType | Should be System.Object + } + + It "Should return the name of the file and the string that 'string' is found if there is only one lines that has a match" { + $expected = $testInputFile + ":1:This is a text string, and another string" + + Select-String $testInputFile -Pattern "string" | Should Be $expected + } + + It "Should return all strings where 'second' is found in testfile1 if there is only one lines that has a match" { + $expected = $testInputFile + ":2:This is the second line" + + Select-String $testInputFile -Pattern "second"| Should Be $expected + } + + #this should probably go up near the one that returns 'object' when only a single match is found + It "Should return an array when a match is found is the file on several lines"{ + (Select-String $testInputFile -Pattern "in").GetType().BaseType | Should be array + } + + It "Should return all strings where 'in' is found in testfile1 pattern switch is not required" { + $expected1 = $testInputFile + ":1:This is a text string, and another string" + $expected2 = $testInputFile + ":2:This is the second line" + $expected3 = $testInputFile + ":3:This is the third line" + $expected4 = $testInputFile + ":4:This is the fourth line" + + (Select-String in $testInputFile)[0] | Should Be $expected1 + (Select-String in $testInputFile)[1] | Should Be $expected2 + (Select-String in $testInputFile)[2] | Should Be $expected3 + (Select-String in $testInputFile)[3] | Should Be $expected4 + (Select-String in $testInputFile)[4] | Should BeNullOrEmpty + } + + It "Should return empty because 'for' is not found in testfile1 " { + Select-String for $testInputFile | Should BeNullOrEmpty + } + + It "Should return the third line in testfile1 and the lines above and below it " { + $expectedLine = "testfile1.txt:2:This is the second line" + $expectedLineBefore = "testfile1.txt:3:This is the third line" + $expectedLineAfter = "/tmp/testfile1.txt:4:This is the fourth line" + + Select-String third $testInputFile -Context 1 | Should Match $expectedLine + Select-String third $testInputFile -Context 1 | Should Match $expectedLineBefore + Select-String third $testInputFile -Context 1 | Should Match $expectedLineAfter + } + + It "Should return the number of matches for 'is' in textfile1 " { + (Select-String is $testInputFile -CaseSensitive).count| Should Be 4 + } + + It "Should return the third line in testfile1 when a relative path is used"{ + $expected = "/tmp/testfile1.txt:3:This is the third line" + + Select-String third /tmp/../tmp/testfile1.txt | Should Match $expected + } + + It "Should return the fourth line in testfile1 when a relative path is used"{ + $testDirectory = "/tmp/" + $expected = "/tmp/testfile1.txt:5:No matches" + + pushd $testDirectory + + Select-String matches $testDirectory/testfile1.txt | Should Match $expected + } + + It "Should return the fourth line in testfile1 when a regular expression is used"{ + $expected = "/tmp/testfile1.txt:5:No matches" + + Select-String 'matc*' $testInputFile -CaseSensitive | Should Match $expected + } + + It "Should return the fourth line in testfile1 when a regular expression is used, using the alias for casesensitive"{ + $expected = "/tmp/testfile1.txt:5:No matches" + + Select-String 'matc*' $testInputFile -ca | Should Match $expected + } + } +} \ No newline at end of file From 807b47a8ce3b3891d06954d863d7374177f4086e Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 8 Sep 2015 15:59:19 -0700 Subject: [PATCH 02/21] Added popd --- src/pester-tests/Test-Select-String.Tests.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pester-tests/Test-Select-String.Tests.ps1 b/src/pester-tests/Test-Select-String.Tests.ps1 index 0eed891a6..027da8384 100644 --- a/src/pester-tests/Test-Select-String.Tests.ps1 +++ b/src/pester-tests/Test-Select-String.Tests.ps1 @@ -128,6 +128,7 @@ pushd $testDirectory Select-String matches $testDirectory/testfile1.txt | Should Match $expected + popd } It "Should return the fourth line in testfile1 when a regular expression is used"{ From 7790be06014af8e15343abd9a07d3eb49d255c37 Mon Sep 17 00:00:00 2001 From: Aaron Date: Fri, 11 Sep 2015 11:43:50 -0700 Subject: [PATCH 03/21] made changes based off of feedback --- src/pester-tests/Test-Select-String.Tests.ps1 | 98 +++++++++++-------- 1 file changed, 59 insertions(+), 39 deletions(-) diff --git a/src/pester-tests/Test-Select-String.Tests.ps1 b/src/pester-tests/Test-Select-String.Tests.ps1 index 027da8384..fc95f6402 100644 --- a/src/pester-tests/Test-Select-String.Tests.ps1 +++ b/src/pester-tests/Test-Select-String.Tests.ps1 @@ -1,9 +1,9 @@ -Describe ".\Test-Select-String" { +Describe "Test-Select-String" { Context "String actions" { - $testInputOne = "Hello","HELLO", "Goodbye" + $testInputOne = "Hello","HELLO","Goodbye" $testInputTwo = "Hello","HELLO" - It "Should be called with out error" { + It "Should be called with out errors" { { $testInputOne | Select-String -Pattern "HELLO" } | Should Not Throw } @@ -12,49 +12,70 @@ } It "Should return an array data type when multiple matches are found" { + # Array is case insensitive ( $testInputTwo | Select-String -Pattern "HELLO").GetType().BaseType | Should Be Array } - + It "Should return an array of matches when multiple matches are found" { - $testInputOne | Select-String -Pattern "HELLO" | Should Be "HELLO", "Hello" + $a = $testInputOne | Select-String -Pattern "HELLO" + $b = $testInputOne | sls -Pattern "HELLO" + + $a | Should Be $b } It "Should return an object type when one match is found" { - # look into the aliases for the switches. ca for case-sensitive, n for notmatch, etc ( $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive).GetType().BaseType | Should Be System.Object } + It "Should return MatchInfo type" { + ( $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive).GetType().Name | Should Be MatchInfo + } + + It "Should use the ca alias for casesenstive" { + $a = $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive + $b = $testInputTwo | Select-String -Pattern "HELLO" -ca + + $a | Should Be $b + } + It "Should only return the case sensitive match when the casesensitive switch is used" { $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive | Should Be "HELLO" } - It "Should accept a collection of strings from the input object"{ + It "Should accept a collection of strings from the input object" { { Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Other" } | Should Not Throw } - It "Should return System.Object when the input object switch is used on a collection"{ + It "Should return System.Object when the input object switch is used on a collection" { ( Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Other" ).GetType().BaseType | Should Be System.Object } - It "Should return null or empty when the input object switch is used on a collection and the pattern does not exist"{ - Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Neither" | Should BeNullOrEmpty + It "Should return null or empty when the input object switch is used on a collection and the pattern does not exist" { + Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Neither" | Should BeNullOrEmpty } - It "Should return a bool type when the quiet switch is used"{ + It "Should return a bool type when the quiet switch is used" { ($testInputTwo | Select-String -Quiet "HELLO" -CaseSensitive).GetType() | Should Be bool } - It "Should be true when select string returns a positive result when the quiet switch is used"{ - ($testInputTwo | Select-String -Quiet "HELLO" -CaseSensitive) | Should Be TRUE + It "Should be true when select string returns a positive result when the quiet switch is used" { + ($testInputTwo | Select-String -Quiet "HELLO" -CaseSensitive) | Should Be $true } - It "Should be empty when select string does not return a result when the quiet switch is used"{ - $testInputTwo | Select-String -Quiet "Goodbye" | Should BeNullOrEmpty + It "Should be empty when select string does not return a result when the quiet switch is used" { + $testInputTwo | Select-String -Quiet "Goodbye" | Should BeNullOrEmpty } - It "Should return an array of non matching strings when the switch of NotMatch is used and the string do not match"{ + It "Should return an array of non matching strings when the switch of NotMatch is used and the string do not match" { $testInputOne | Select-String -Pattern "Goodbye" -NotMatch | Should Be "HELLO", "Hello" } + + It "Should return the same as NotMatch" { + $a = $testInputOne | Select-String -Pattern "Goodbye" -NotMatch + $b = $testInputOne | Select-String -Pattern "Goodbye" -n + + $a | Should Be $b + } } Context "Filesytem actions" { @@ -62,11 +83,15 @@ BeforeEach { New-Item $testInputFile -Itemtype "file" -Force -Value "This is a text string, and another string`nThis is the second line`nThis is the third line`nThis is the fourth line`nNo matches" } - - It "Should return an object when a match is found is the file on only one line"{ + + It "Should return an object when a match is found is the file on only one line" { (Select-String $testInputFile -Pattern "string").GetType().BaseType | Should be System.Object } - + + It "Should return an array when a match is found is the file on several lines" { + (Select-String $testInputFile -Pattern "in").GetType().BaseType | Should be array + } + It "Should return the name of the file and the string that 'string' is found if there is only one lines that has a match" { $expected = $testInputFile + ":1:This is a text string, and another string" @@ -79,22 +104,17 @@ Select-String $testInputFile -Pattern "second"| Should Be $expected } - #this should probably go up near the one that returns 'object' when only a single match is found - It "Should return an array when a match is found is the file on several lines"{ - (Select-String $testInputFile -Pattern "in").GetType().BaseType | Should be array - } - It "Should return all strings where 'in' is found in testfile1 pattern switch is not required" { - $expected1 = $testInputFile + ":1:This is a text string, and another string" - $expected2 = $testInputFile + ":2:This is the second line" - $expected3 = $testInputFile + ":3:This is the third line" - $expected4 = $testInputFile + ":4:This is the fourth line" + $expected1 = "This is a text string, and another string" + $expected2 = "This is the second line" + $expected3 = "This is the third line" + $expected4 = "This is the fourth line" - (Select-String in $testInputFile)[0] | Should Be $expected1 - (Select-String in $testInputFile)[1] | Should Be $expected2 - (Select-String in $testInputFile)[2] | Should Be $expected3 - (Select-String in $testInputFile)[3] | Should Be $expected4 - (Select-String in $testInputFile)[4] | Should BeNullOrEmpty + (Select-String in $testInputFile)[0].Line | Should Be $expected1 + (Select-String in $testInputFile)[1].Line | Should Be $expected2 + (Select-String in $testInputFile)[2].Line | Should Be $expected3 + (Select-String in $testInputFile)[3].Line | Should Be $expected4 + (Select-String in $testInputFile)[4].Line | Should BeNullOrEmpty } It "Should return empty because 'for' is not found in testfile1 " { @@ -115,32 +135,32 @@ (Select-String is $testInputFile -CaseSensitive).count| Should Be 4 } - It "Should return the third line in testfile1 when a relative path is used"{ + It "Should return the third line in testfile1 when a relative path is used" { $expected = "/tmp/testfile1.txt:3:This is the third line" Select-String third /tmp/../tmp/testfile1.txt | Should Match $expected } - It "Should return the fourth line in testfile1 when a relative path is used"{ + It "Should return the fourth line in testfile1 when a relative path is used" { $testDirectory = "/tmp/" $expected = "/tmp/testfile1.txt:5:No matches" pushd $testDirectory Select-String matches $testDirectory/testfile1.txt | Should Match $expected - popd + popd } - It "Should return the fourth line in testfile1 when a regular expression is used"{ + It "Should return the fourth line in testfile1 when a regular expression is used" { $expected = "/tmp/testfile1.txt:5:No matches" Select-String 'matc*' $testInputFile -CaseSensitive | Should Match $expected } - It "Should return the fourth line in testfile1 when a regular expression is used, using the alias for casesensitive"{ + It "Should return the fourth line in testfile1 when a regular expression is used, using the alias for casesensitive" { $expected = "/tmp/testfile1.txt:5:No matches" Select-String 'matc*' $testInputFile -ca | Should Match $expected } } -} \ No newline at end of file +} From 4db3cf379712426125b6594a226376a72edc2d19 Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 15 Sep 2015 11:20:51 -0700 Subject: [PATCH 04/21] Added pester tests for Get-Random --- src/pester-tests/Test-Get-Random.Tests.ps1 | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/pester-tests/Test-Get-Random.Tests.ps1 diff --git a/src/pester-tests/Test-Get-Random.Tests.ps1 b/src/pester-tests/Test-Get-Random.Tests.ps1 new file mode 100644 index 000000000..004e2dcbf --- /dev/null +++ b/src/pester-tests/Test-Get-Random.Tests.ps1 @@ -0,0 +1,82 @@ +Describe "Test-Get-Random" { + It "Should return a random number greater than -1 " { + Get-Random | Should BeGreaterThan -1 + } + It "Should return a random number less than 100 " { + Get-Random -Maximum 100 | Should BeLessThan 100 + Get-Random -Maximum 100 | Should BeGreaterThan 0 + } + + It "Should return a random number less than 100 and greater than -100 " { + $randomNumber = Get-Random -Minimum -100 -Maximum 100 + $randomNumber | Should BeLessThan 100 + $randomNumber | Should BeGreaterThan -100 + } + + It "Should return a random number less than 20.93 and greater than 10.7 " { + $randomNumber = Get-Random -Minimum 10.7 -Maximum 20.93 + $randomNumber | Should BeLessThan 20.93 + $randomNumber | Should BeGreaterThan 10.7 + } + + It "Should return same number for both Get-Random when switch SetSeed is used " { + $firstRandomNumber = Get-Random -Maximum 100 -SetSeed 23 + $secondRandomNumber = Get-Random -Maximum 100 -SetSeed 23 + $firstRandomNumber | Should be $secondRandomNumber + } + + It "Should return a number from 1,2,3,5,8,13 " { + $randomNumber = Get-Random -InputObject 1, 2, 3, 5, 8, 13 + $randomNumber | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + } + + It "Should return an array " { + $randomNumber = Get-Random -InputObject 1, 2, 3, 5, 8, 13 -Count 3 + $randomNumber.GetType().BaseType | Should Be array + } + + It "Should return three random numbers for array of 1,2,3,5,8,13 " { + $randomNumber = Get-Random -InputObject 1, 2, 3, 5, 8, 13 -Count 3 + $randomNumber[0] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[1] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[2] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[3] | Should BeNullOrEmpty + } + + It "Should return all the numbers for array of 1,2,3,5,8,13 in no particular order" { + $randomNumber = Get-Random -InputObject 1, 2, 3, 5, 8, 13 -Count ([int]::MaxValue) + $randomNumber[0] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[1] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[2] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[3] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[4] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[5] | Should Be (1 -or 2 -or 3 -or 5 -or 8 -or 13) + $randomNumber[6] | Should BeNullOrEmpty + } + + It "Should return for a string collection " { + $randomNumber = Get-Random -InputObject "red", "yellow", "blue" + $randomNumber | Should Be ("red" -or "yellow" -or "blue") + } + + It "Should return a number for hexdecimal " { + $randomNumber = Get-Random 0x07FFFFFFFFF + $randomNumber | Should BeLessThan 549755813887 + $randomNumber | Should BeGreaterThan 0 + } + + It "Should return false, check two random numbers are not equal when not using the SetSeed switch " { + $firstRandomNumber = Get-Random + $secondRandomNumber = Get-Random + $firstRandomNumber | Should Not Be $secondRandomNumber + } + + It "Should return the same number for hexidemical number and regular number when the switch SetSeed it used " { + $firstRandomNumber = Get-Random 0x07FFFFFFFF -SetSeed 20 + $secondRandomNumber = Get-Random 34359738367 -SetSeed 20 + $firstRandomNumber | Should Be @secondRandomNumber + } + It "Should throw an error because the hexidecial number is to large " { + { Get-Random 0x07FFFFFFFFFFFFFFFF } | Should Throw "Value was either too large or too small for a UInt32" + } +} From ab8878fa52df373ede2474f508965ffe2d6afce9 Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 15 Sep 2015 15:13:29 -0700 Subject: [PATCH 05/21] Changed to Select-String Pester tests based off of feeddback from pull request --- src/pester-tests/Test-Select-String.Tests.ps1 | 246 +++++++++--------- 1 file changed, 127 insertions(+), 119 deletions(-) diff --git a/src/pester-tests/Test-Select-String.Tests.ps1 b/src/pester-tests/Test-Select-String.Tests.ps1 index fc95f6402..74a700e53 100644 --- a/src/pester-tests/Test-Select-String.Tests.ps1 +++ b/src/pester-tests/Test-Select-String.Tests.ps1 @@ -1,166 +1,174 @@ Describe "Test-Select-String" { Context "String actions" { - $testInputOne = "Hello","HELLO","Goodbye" - $testInputTwo = "Hello","HELLO" + $testinputone = "hello","Hello","goodbye" + $testinputtwo = "hello","Hello" - It "Should be called with out errors" { - { $testInputOne | Select-String -Pattern "HELLO" } | Should Not Throw + it "Should be called with out errors" { + { $testinputone | Select-String -Pattern "hello" } | Should Not Throw } - It "Should be called without error using the sls alias" { - { $testInputOne | sls -Pattern "HELLO" } | Should Not Throw + it "Should be called without error using the sls alias" { + { $testinputone | sls -Pattern "hello" } | Should Not Throw } - It "Should return an array data type when multiple matches are found" { - # Array is case insensitive - ( $testInputTwo | Select-String -Pattern "HELLO").GetType().BaseType | Should Be Array + it "Should return an array data type when multiple matches are found" { + # array is case insensitive + ( $testinputtwo | Select-String -Pattern "hello").gettype().basetype | Should Be Array } - It "Should return an array of matches when multiple matches are found" { - $a = $testInputOne | Select-String -Pattern "HELLO" - $b = $testInputOne | sls -Pattern "HELLO" + it "Should return the same result for the alias sls and Select-String " { + $firstMatch = $testinputone | Select-String -Pattern "hello" + $secondMatch = $testinputone | sls -Pattern "hello" - $a | Should Be $b + $equal = @(compare-object $firstMatch $secondMatch).Length -eq 0 + $equal | Should Be True } - It "Should return an object type when one match is found" { - ( $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive).GetType().BaseType | Should Be System.Object + it "Should return an object type when one match is found" { + ( $testinputtwo | Select-String -Pattern "hello" -CaseSensitive).gettype().basetype | Should Be System.Object } - It "Should return MatchInfo type" { - ( $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive).GetType().Name | Should Be MatchInfo + it "Should return matchinfo type" { + ( $testinputtwo | Select-String -Pattern "hello" -CaseSensitive).gettype().name | Should Be MatchInfo } - It "Should use the ca alias for casesenstive" { - $a = $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive - $b = $testInputTwo | Select-String -Pattern "HELLO" -ca - - $a | Should Be $b + it "Should be called without an error using ca for casesensitive " { + {$testinputone | Select-String -Pattern "hello" -ca } | Should Not Throw } - It "Should only return the case sensitive match when the casesensitive switch is used" { - $testInputTwo | Select-String -Pattern "HELLO" -CaseSensitive | Should Be "HELLO" + it "Should use the ca alias for casesenstive" { + $firstMatch = $testinputtwo | Select-String -Pattern "hello" -CaseSensitive + $secondMatch = $testinputtwo | Select-String -Pattern "hello" -ca + + $equal = @(Compare-Object $firstMatch $secondMatch).Length -eq 0 + $equal | Should Be True } - It "Should accept a collection of strings from the input object" { - { Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Other" } | Should Not Throw + it "Should only return the case sensitive match when the casesensitive switch is used" { + $testinputtwo | Select-String -Pattern "hello" -CaseSensitive | Should Be "hello" } - It "Should return System.Object when the input object switch is used on a collection" { - ( Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Other" ).GetType().BaseType | Should Be System.Object + it "Should accept a collection of strings from the input object" { + { Select-String -InputObject "some stuff", "other stuff" -Pattern "other" } | Should Not Throw } - It "Should return null or empty when the input object switch is used on a collection and the pattern does not exist" { - Select-String -InputObject "Some stuff", "Other stuff" -Pattern "Neither" | Should BeNullOrEmpty + it "Should return system.object when the input object switch is used on a collection" { + ( Select-String -InputObject "some stuff", "other stuff" -pattern "other" ).gettype().basetype | Should Be System.Object } - It "Should return a bool type when the quiet switch is used" { - ($testInputTwo | Select-String -Quiet "HELLO" -CaseSensitive).GetType() | Should Be bool + it "Should return null or empty when the input object switch is used on a collection and the pattern does not exist" { + Select-String -InputObject "some stuff", "other stuff" -Pattern "neither" | Should BeNullOrEmpty } - It "Should be true when select string returns a positive result when the quiet switch is used" { - ($testInputTwo | Select-String -Quiet "HELLO" -CaseSensitive) | Should Be $true + it "Should return a bool type when the quiet switch is used" { + ($testinputtwo | Select-String -Quiet "hello" -CaseSensitive).gettype() | Should Be Bool } - It "Should be empty when select string does not return a result when the quiet switch is used" { - $testInputTwo | Select-String -Quiet "Goodbye" | Should BeNullOrEmpty + it "Should be true when select string returns a positive result when the quiet switch is used" { + ($testinputtwo | Select-String -Quiet "hello" -CaseSensitive) | Should Be $True } - It "Should return an array of non matching strings when the switch of NotMatch is used and the string do not match" { - $testInputOne | Select-String -Pattern "Goodbye" -NotMatch | Should Be "HELLO", "Hello" + it "Should be empty when select string does not return a result when the quiet switch is used" { + $testinputtwo | Select-String -Quiet "goodbye" | Should BeNullOrEmpty } - It "Should return the same as NotMatch" { - $a = $testInputOne | Select-String -Pattern "Goodbye" -NotMatch - $b = $testInputOne | Select-String -Pattern "Goodbye" -n + it "Should return an array of non matching strings when the switch of NotMatch is used and the string do not match" { + $testinputone | Select-String -Pattern "goodbye" -NotMatch | Should Be "hello", "hello" + } - $a | Should Be $b + it "Should return the same as NotMatch" { + $firstMatch = $testinputone | Select-String -pattern "goodbye" -NotMatch + $secondMatch = $testinputone | Select-String -pattern "goodbye" -n + + $equal = @(Compare-Object $firstMatch $secondMatch).Length -eq 0 + $equal | Should Be True } } - - Context "Filesytem actions" { - $testInputFile = "/tmp/testfile1.txt" - BeforeEach { - New-Item $testInputFile -Itemtype "file" -Force -Value "This is a text string, and another string`nThis is the second line`nThis is the third line`nThis is the fourth line`nNo matches" - } - It "Should return an object when a match is found is the file on only one line" { - (Select-String $testInputFile -Pattern "string").GetType().BaseType | Should be System.Object - } + Context "Filesytem actions" { + $testInputFile = "/tmp/testfile1.txt" + BeforeEach { + New-Item $testInputFile -Itemtype "file" -Force -Value "This is a text string, and another string`nThis is the second line`nThis is the third line`nThis is the fourth line`nNo matches" + } - It "Should return an array when a match is found is the file on several lines" { - (Select-String $testInputFile -Pattern "in").GetType().BaseType | Should be array - } + It "Should return an object when a match is found is the file on only one line" { + (Select-String $testInputFile -Pattern "string").GetType().BaseType | Should be System.Object + } + + It "Should return an array when a match is found is the file on several lines" { + (Select-String $testInputFile -Pattern "in").GetType().BaseType | Should be array + (Select-String $testInputFile -Pattern "in")[0].GetType().Name | Should Be MatchInfo + } It "Should return the name of the file and the string that 'string' is found if there is only one lines that has a match" { $expected = $testInputFile + ":1:This is a text string, and another string" Select-String $testInputFile -Pattern "string" | Should Be $expected - } - - It "Should return all strings where 'second' is found in testfile1 if there is only one lines that has a match" { - $expected = $testInputFile + ":2:This is the second line" - - Select-String $testInputFile -Pattern "second"| Should Be $expected - } - - It "Should return all strings where 'in' is found in testfile1 pattern switch is not required" { - $expected1 = "This is a text string, and another string" - $expected2 = "This is the second line" - $expected3 = "This is the third line" - $expected4 = "This is the fourth line" - - (Select-String in $testInputFile)[0].Line | Should Be $expected1 - (Select-String in $testInputFile)[1].Line | Should Be $expected2 - (Select-String in $testInputFile)[2].Line | Should Be $expected3 - (Select-String in $testInputFile)[3].Line | Should Be $expected4 - (Select-String in $testInputFile)[4].Line | Should BeNullOrEmpty - } + } - It "Should return empty because 'for' is not found in testfile1 " { - Select-String for $testInputFile | Should BeNullOrEmpty - } - - It "Should return the third line in testfile1 and the lines above and below it " { - $expectedLine = "testfile1.txt:2:This is the second line" - $expectedLineBefore = "testfile1.txt:3:This is the third line" - $expectedLineAfter = "/tmp/testfile1.txt:4:This is the fourth line" - - Select-String third $testInputFile -Context 1 | Should Match $expectedLine - Select-String third $testInputFile -Context 1 | Should Match $expectedLineBefore - Select-String third $testInputFile -Context 1 | Should Match $expectedLineAfter - } - - It "Should return the number of matches for 'is' in textfile1 " { - (Select-String is $testInputFile -CaseSensitive).count| Should Be 4 - } - - It "Should return the third line in testfile1 when a relative path is used" { - $expected = "/tmp/testfile1.txt:3:This is the third line" - - Select-String third /tmp/../tmp/testfile1.txt | Should Match $expected - } - - It "Should return the fourth line in testfile1 when a relative path is used" { - $testDirectory = "/tmp/" - $expected = "/tmp/testfile1.txt:5:No matches" - - pushd $testDirectory - - Select-String matches $testDirectory/testfile1.txt | Should Match $expected + It "Should return all strings where 'second' is found in testfile1 if there is only one lines that has a match" { + $expected = $testInputFile + ":2:This is the second line" + + Select-String $testInputFile -Pattern "second"| Should Be $expected + } + + It "Should return all strings where 'in' is found in testfile1 pattern switch is not required" { + $expected1 = "This is a text string, and another string" + $expected2 = "This is the second line" + $expected3 = "This is the third line" + $expected4 = "This is the fourth line" + + (Select-String in $testInputFile)[0].Line | Should Be $expected1 + (Select-String in $testInputFile)[1].Line | Should Be $expected2 + (Select-String in $testInputFile)[2].Line | Should Be $expected3 + (Select-String in $testInputFile)[3].Line | Should Be $expected4 + (Select-String in $testInputFile)[4].Line | Should BeNullOrEmpty + } + + It "Should return empty because 'for' is not found in testfile1 " { + Select-String for $testInputFile | Should BeNullOrEmpty + } + + It "Should return the third line in testfile1 and the lines above and below it " { + $expectedLine = "testfile1.txt:2:This is the second line" + $expectedLineBefore = "testfile1.txt:3:This is the third line" + $expectedLineAfter = "/tmp/testfile1.txt:4:This is the fourth line" + + Select-String third $testInputFile -Context 1 | Should Match $expectedLine + Select-String third $testInputFile -Context 1 | Should Match $expectedLineBefore + Select-String third $testInputFile -Context 1 | Should Match $expectedLineAfter + } + + It "Should return the number of matches for 'is' in textfile1 " { + (Select-String is $testInputFile -CaseSensitive).count| Should Be 4 + } + + It "Should return the third line in testfile1 when a relative path is used" { + $expected = "/tmp/testfile1.txt:3:This is the third line" + + Select-String third /tmp/../tmp/testfile1.txt | Should Match $expected + } + + It "Should return the fourth line in testfile1 when a relative path is used" { + $testDirectory = "/tmp/" + $expected = "/tmp/testfile1.txt:5:No matches" + + pushd $testDirectory + + Select-String matches $testDirectory/testfile1.txt | Should Match $expected popd - } - - It "Should return the fourth line in testfile1 when a regular expression is used" { - $expected = "/tmp/testfile1.txt:5:No matches" - - Select-String 'matc*' $testInputFile -CaseSensitive | Should Match $expected - } - - It "Should return the fourth line in testfile1 when a regular expression is used, using the alias for casesensitive" { - $expected = "/tmp/testfile1.txt:5:No matches" - - Select-String 'matc*' $testInputFile -ca | Should Match $expected - } - } + } + + It "Should return the fourth line in testfile1 when a regular expression is used" { + $expected = "/tmp/testfile1.txt:5:No matches" + + Select-String 'matc*' $testInputFile -CaseSensitive | Should Match $expected + } + + It "Should return the fourth line in testfile1 when a regular expression is used, using the alias for casesensitive" { + $expected = "/tmp/testfile1.txt:5:No matches" + + Select-String 'matc*' $testInputFile -ca | Should Match $expected + } + } } From be87f4fb45086dbece92ec987777462108f833f5 Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Tue, 15 Sep 2015 15:33:52 -0700 Subject: [PATCH 06/21] added more pester tests --- src/pester-tests/Test-Get-Content.Tests.ps1 | 84 +++++++++++++++++---- 1 file changed, 70 insertions(+), 14 deletions(-) diff --git a/src/pester-tests/Test-Get-Content.Tests.ps1 b/src/pester-tests/Test-Get-Content.Tests.ps1 index 244377003..893c6d7aa 100644 --- a/src/pester-tests/Test-Get-Content.Tests.ps1 +++ b/src/pester-tests/Test-Get-Content.Tests.ps1 @@ -1,26 +1,82 @@ Describe "Test-Get-Content" { + $testString = "This is a test content for a file" + $secondline = "Here's a first line `n here's a second line`nmore text`njust to make sure`n there's plenty to work with" + $testPath = "/tmp/testfile1" + $testPath2 = "/tmp/testfile2" + + BeforeEach { + New-Item -Path $testPath -Force -Value $testString + New-Item -Path $testPath2 -Force -Value $secondline + } + It "Should throw an error on a directory " { # also tests that -erroraction SilentlyContinue will work. - Get-Content . -ErrorAction SilentlyContinue | Should Throw - cat . -ErrorAction SilentlyContinue | Should Throw - gc . -ErrorAction SilentlyContinue | Should Throw - type . -ErrorAction SilentlyContinue | Should Throw - } - It "Should deliver an array object when listing a file" { - (Get-Content -Path ./Test-Get-Content.Tests.ps1).GetType().BaseType.Name | Should Be "Array" - (Get-Content -Path ./Test-Get-Content.Tests.ps1)[0] |Should be "Describe `"Test-Get-Content`" `{" + It "Should return an Object when listing only a single line" { + (Get-Content -Path $testPath).GetType().BaseType.Name | Should Be "Object" + } - (gc -Path ./Test-Get-Content.Tests.ps1).GetType().BaseType.Name | Should Be "Array" - (gc -Path ./Test-Get-Content.Tests.ps1)[0] |Should be "Describe `"Test-Get-Content`" `{" + It "Should deliver an array object when listing a file with multiple lines" { + (Get-Content -Path $testPath2).GetType().BaseType.Name | Should Be "Array" + } - (type -Path ./Test-Get-Content.Tests.ps1).GetType().BaseType.Name | Should Be "Array" - (type -Path ./Test-Get-Content.Tests.ps1)[0] |Should be "Describe `"Test-Get-Content`" `{" + It "Should return the correct information from a file" { + (Get-Content -Path $testPath) | Should Be $testString + } - (cat -Path ./Test-Get-Content.Tests.ps1).GetType().BaseType.Name | Should Be "Array" - (cat -Path ./Test-Get-Content.Tests.ps1)[0] |Should be "Describe `"Test-Get-Content`" `{" + It "Should be able to call using the cat alias" { + { cat -Path $testPath } | Should Not Throw + } + It "Should be able to call using the gc alias" { + { gc -Path $testPath } | Should Not Throw + } + + It "Should be able to call using the type alias" { + { type -Path $testPath } | Should Not Throw + } + + It "Should be able to return a specific line from a file" { + (cat -Path $testPath2)[1] | Should be " here's a second line" + } + + It "Should be able to specify the number of lines to get the content of using the TotalCount switch" { + $returnArray = (cat -Path $testPath2 -TotalCount 2) + + $returnArray[0] | Should Be "Here's a first line " + $returnArray[1] | Should Be " here's a second line" + } + + It "Should be able to specify the number of lines to get the content of using the Head switch" { + $returnArray = (cat -Path $testPath2 -Head 2) + + $returnArray[0] | Should Be "Here's a first line " + $returnArray[1] | Should Be " here's a second line" + } + + It "Should be able to specify the number of lines to get the content of using the First switch" { + $returnArray = (cat -Path $testPath2 -First 2) + + $returnArray[0] | Should Be "Here's a first line " + $returnArray[1] | Should Be " here's a second line" + } + + It "Should return the last line of a file using the Tail switch" { + Get-Content -Path $testPath -Tail 1 | Should Be " there's plenty to work with" + } + + It "Should return the last lines of a file using the Last alias" { + Get-Content -Path $testPath2 -Tail 1 | Should Be " there's plenty to work with" + } + + It "Should be able to get content within a different drive" { + Set-Location env: + + { Get-Content PATH } | Should Not Throw + Get-Content PATH | Should Be "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + + Set-Location / } } From c57e8be8fdd6c4e9f9d949c84b4104d317a51dcb Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Thu, 17 Sep 2015 15:35:38 -0700 Subject: [PATCH 07/21] added changes from code review --- src/pester-tests/Test-Get-Content.Tests.ps1 | 42 +++++++++++++++------ 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/pester-tests/Test-Get-Content.Tests.ps1 b/src/pester-tests/Test-Get-Content.Tests.ps1 index 893c6d7aa..2aaa5e75e 100644 --- a/src/pester-tests/Test-Get-Content.Tests.ps1 +++ b/src/pester-tests/Test-Get-Content.Tests.ps1 @@ -1,12 +1,21 @@ Describe "Test-Get-Content" { $testString = "This is a test content for a file" - $secondline = "Here's a first line `n here's a second line`nmore text`njust to make sure`n there's plenty to work with" + $nl = "`n" + + $firstline = "Here's a first line " + $secondline = " here's a second line" + $thirdline = "more text" + $fourthline = "just to make sure" + $fifthline = "there's plenty to work with" + + $testString2 = $firstline + $nl + $secondline + $nl + $thirdline + $nl + $fourthline + $nl + $fifthline + $testPath = "/tmp/testfile1" $testPath2 = "/tmp/testfile2" BeforeEach { New-Item -Path $testPath -Force -Value $testString - New-Item -Path $testPath2 -Force -Value $secondline + New-Item -Path $testPath2 -Force -Value $testString2 } It "Should throw an error on a directory " { @@ -38,37 +47,48 @@ { type -Path $testPath } | Should Not Throw } + It "Should return the same values for aliases" { + $getContentAlias = Get-Content -Path $testPath + $gcAlias = gc -Path $testPath + $catAlias = gc -Path $testPath + $typeAlias = gc -Path $testPath + + $getContentAlias | Should Be $gcAlias + $getContentAlias | Should Be $catAlias + $getContentAlias | Should Be $typeAlias + } + It "Should be able to return a specific line from a file" { - (cat -Path $testPath2)[1] | Should be " here's a second line" + (Get-Content -Path $testPath2)[1] | Should be $secondline } It "Should be able to specify the number of lines to get the content of using the TotalCount switch" { $returnArray = (cat -Path $testPath2 -TotalCount 2) - $returnArray[0] | Should Be "Here's a first line " - $returnArray[1] | Should Be " here's a second line" + $returnArray[0] | Should Be $firstline + $returnArray[1] | Should Be $secondline } It "Should be able to specify the number of lines to get the content of using the Head switch" { $returnArray = (cat -Path $testPath2 -Head 2) - $returnArray[0] | Should Be "Here's a first line " - $returnArray[1] | Should Be " here's a second line" + $returnArray[0] | Should Be $firstline + $returnArray[1] | Should Be $secondline } It "Should be able to specify the number of lines to get the content of using the First switch" { $returnArray = (cat -Path $testPath2 -First 2) - $returnArray[0] | Should Be "Here's a first line " - $returnArray[1] | Should Be " here's a second line" + $returnArray[0] | Should Be $firstline + $returnArray[1] | Should Be $secondline } It "Should return the last line of a file using the Tail switch" { - Get-Content -Path $testPath -Tail 1 | Should Be " there's plenty to work with" + Get-Content -Path $testPath -Tail 1 | Should Be $fifthline } It "Should return the last lines of a file using the Last alias" { - Get-Content -Path $testPath2 -Tail 1 | Should Be " there's plenty to work with" + Get-Content -Path $testPath2 -Last 1 | Should Be $fifthline } It "Should be able to get content within a different drive" { From 2c303db564f65451438b87a97638f61b98576e1c Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Thu, 17 Sep 2015 16:17:58 -0700 Subject: [PATCH 08/21] merging in monad changes required to fix get-content -tail bug --- src/monad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/monad b/src/monad index 105169ff7..f94ae7e0c 160000 --- a/src/monad +++ b/src/monad @@ -1 +1 @@ -Subproject commit 105169ff725b1d1ddfe0b4e018ac780e485ab3a7 +Subproject commit f94ae7e0c7030fe9efb06df7ae849d7484955e33 From dabf16789d067450f7c197eb58bb9a7ef6a813ad Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Thu, 17 Sep 2015 16:18:31 -0700 Subject: [PATCH 09/21] minor typo fixes --- src/pester-tests/Test-Get-Content.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pester-tests/Test-Get-Content.Tests.ps1 b/src/pester-tests/Test-Get-Content.Tests.ps1 index 2aaa5e75e..bd555127a 100644 --- a/src/pester-tests/Test-Get-Content.Tests.ps1 +++ b/src/pester-tests/Test-Get-Content.Tests.ps1 @@ -84,7 +84,7 @@ } It "Should return the last line of a file using the Tail switch" { - Get-Content -Path $testPath -Tail 1 | Should Be $fifthline + Get-Content -Path $testPath -Tail 1 | Should Be $testString } It "Should return the last lines of a file using the Last alias" { From da42c7680a386d58d7c54b85d45bcd8cd3753e3c Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Fri, 18 Sep 2015 18:32:21 -0700 Subject: [PATCH 10/21] fixed a bug in final test to verify that we can get-content in different drives. --- src/pester-tests/Test-Get-Content.Tests.ps1 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pester-tests/Test-Get-Content.Tests.ps1 b/src/pester-tests/Test-Get-Content.Tests.ps1 index bd555127a..09346ddd8 100644 --- a/src/pester-tests/Test-Get-Content.Tests.ps1 +++ b/src/pester-tests/Test-Get-Content.Tests.ps1 @@ -87,16 +87,18 @@ Get-Content -Path $testPath -Tail 1 | Should Be $testString } + It "Should return the last lines of a file using the Last alias" { Get-Content -Path $testPath2 -Last 1 | Should Be $fifthline } It "Should be able to get content within a different drive" { - Set-Location env: + pushd env: + $expectedoutput = [Environment]::GetEnvironmentVariable("PATH"); { Get-Content PATH } | Should Not Throw - Get-Content PATH | Should Be "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + Get-Content PATH | Should Be $expectedoutput - Set-Location / + popd } } From a3f0fd09ab0538cd15bfe573c122cfc7335011f5 Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Mon, 21 Sep 2015 10:12:38 -0700 Subject: [PATCH 11/21] implemented changes from code review --- src/pester-tests/Test-Select-String.Tests.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pester-tests/Test-Select-String.Tests.ps1 b/src/pester-tests/Test-Select-String.Tests.ps1 index 74a700e53..54a21ac72 100644 --- a/src/pester-tests/Test-Select-String.Tests.ps1 +++ b/src/pester-tests/Test-Select-String.Tests.ps1 @@ -3,7 +3,7 @@ $testinputone = "hello","Hello","goodbye" $testinputtwo = "hello","Hello" - it "Should be called with out errors" { + it "Should be called without errors" { { $testinputone | Select-String -Pattern "hello" } | Should Not Throw } @@ -12,7 +12,6 @@ } it "Should return an array data type when multiple matches are found" { - # array is case insensitive ( $testinputtwo | Select-String -Pattern "hello").gettype().basetype | Should Be Array } From 8667e489390d863c2e576c6094f8e22d3e2a3c47 Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Mon, 21 Sep 2015 13:41:41 -0700 Subject: [PATCH 12/21] minor typo fixing --- src/pester-tests/Test-Get-Content.Tests.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pester-tests/Test-Get-Content.Tests.ps1 b/src/pester-tests/Test-Get-Content.Tests.ps1 index 09346ddd8..3bcdcab93 100644 --- a/src/pester-tests/Test-Get-Content.Tests.ps1 +++ b/src/pester-tests/Test-Get-Content.Tests.ps1 @@ -50,8 +50,8 @@ It "Should return the same values for aliases" { $getContentAlias = Get-Content -Path $testPath $gcAlias = gc -Path $testPath - $catAlias = gc -Path $testPath - $typeAlias = gc -Path $testPath + $catAlias = cat -Path $testPath + $typeAlias = type -Path $testPath $getContentAlias | Should Be $gcAlias $getContentAlias | Should Be $catAlias From b14a455343a9015cee4bdd3ddfb58c65846e67b0 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Wed, 30 Sep 2015 18:41:02 -0700 Subject: [PATCH 13/21] Create TypeCatalogGen.exe input, powershell.inc Previous attempt at this failed because it is not actually a Makefile. --- .gitignore | 1 + scripts/Makefile | 17 ++++- scripts/powershell-linux.inc | 136 ----------------------------------- scripts/powershell.inc | 86 ---------------------- 4 files changed, 15 insertions(+), 225 deletions(-) delete mode 100644 scripts/powershell-linux.inc delete mode 100644 scripts/powershell.inc diff --git a/.gitignore b/.gitignore index 7d710e83e..df7c361ab 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ Makefile cmake_install.cmake externals scripts/xunittests.xml +/scripts/powershell.inc diff --git a/scripts/Makefile b/scripts/Makefile index 30125c6bb..5a07abe9d 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -92,10 +92,21 @@ MPATH=/usr/lib/mono/4.5/Facades buildtemp/TypeCatalogGen.exe: ../src/monad/monad/nttargets/assemblies/core/PSAssemblyLoadContext/TypeCatalogGen/TypeCatalogGen.cs buildtemp/System.Reflection.Metadata.dll buildtemp/System.Collections.Immutable.dll $(MCS) -out:$@ -target:exe $(NUGETREF) -pkg:dotnet -r:$(MPATH)/System.Runtime.dll -r:$(MPATH)/System.Reflection.Primitives.dll -r:$(MPATH)/System.IO.dll $< +# this generates the necessary file of CoreCLR references that is an artifact of the Windows build process +# since we don't have Make 4.1, we can't use $(file), and using @echo makes the escaping tricky +# the list of references MUST be line-by-line, to match '^\$\(PS_PROFILE_REF_PATH\)\\(.+);\s*\\$' +REFERENCE_ASSEMBLIES=$(notdir $(shell ls $(TARGETING_PACK)/*.dll)) +PROFILE_REFERENCES=$(addsuffix ;\\\n, $(addprefix $$(PS_PROFILE_REF_PATH)\, $(REFERENCE_ASSEMBLIES))) +powershell.inc: + @echo 'PROFILE_REF_PATH=$$(SDK_REF_PATH)\Profiles' > $@ + @echo 'PS_PROFILE_REF_PATH=$$(PROFILE_REF_PATH)\PowerShell' >> $@ + @echo 'PROFILE_REFERENCES=\\' >> $@ + @echo '$(PROFILE_REFERENCES)' >> $@ + # generate the Core PS type catalog # this comes from: ../src/monad/monad/nttargets/assemblies/core/PSAssemblyLoadContext/makefile.inc -CorePsTypeCatalog.cs: powershell-linux.inc buildtemp/TypeCatalogGen.exe buildtemp/System.Reflection.Metadata.dll buildtemp/System.Collections.Immutable.dll - LD_LIBRARY_PATH=. mono buildtemp/TypeCatalogGen.exe powershell-linux.inc $@ $(MONAD_EXT)/coreclr/TargetingPack +CorePsTypeCatalog.cs: powershell.inc buildtemp/TypeCatalogGen.exe buildtemp/System.Reflection.Metadata.dll buildtemp/System.Collections.Immutable.dll + LD_LIBRARY_PATH=. mono buildtemp/TypeCatalogGen.exe $< $@ $(MONAD_EXT)/coreclr/TargetingPack # the pinvoke library libps.so @@ -221,7 +232,7 @@ clean: rm -rf exec_env rm -rf buildtemp/libps-build rm -rf dotnetlibs/* - rm -f xunittests.xml + rm -f xunittests.xml powershell.inc # clean built stuff + prepare step cleanall: clean diff --git a/scripts/powershell-linux.inc b/scripts/powershell-linux.inc deleted file mode 100644 index 49f140467..000000000 --- a/scripts/powershell-linux.inc +++ /dev/null @@ -1,136 +0,0 @@ -# -# This file includes OneCore powershell CoreCLR references. Do not import this file directly. It is automatically imported -# when MANAGED_PROFILE=PowerShell is specified in sources file. -# -# This file is also depended on by the tool 'TypeCatalogGen.exe'. The tool tries to parse this file to get the list of reference -# assemblies used by OneCore powershell, and then use that list to generate the CSharp code for initializing the CoreCLR type -# catalog cache. That CSharp code will be compiled into 'Microsoft.PowerShell.CoreCLR.AssemblyLoadContext.dll' during the build. -# For more information about 'TypeCatalogGen.exe', see its source code under 'PSAssemblyLoadContext\TypeCatalogGen'. -# -# The parsing rule of this file in 'TypeCatalogGen.exe' is very simple: -# - Read each line of this file and trim it; -# - Skip comment lines; -# - Match the line with the regular expression pattern '^\$\(PS_PROFILE_REF_PATH\)\\(.+);\s*\\$' -# So when adding new reference assembly entries, please make sure the new lines match the above pattern. -# -PROFILE_REF_PATH=$(SDK_REF_PATH)\Profiles -PS_PROFILE_REF_PATH=$(PROFILE_REF_PATH)\PowerShell - -PROFILE_REFERENCES=\ - $(PS_PROFILE_REF_PATH)\Microsoft.CSharp.dll;\ - $(PS_PROFILE_REF_PATH)\Microsoft.VisualBasic.dll;\ - $(PS_PROFILE_REF_PATH)\Microsoft.Win32.Primitives.dll;\ - $(PS_PROFILE_REF_PATH)\Microsoft.Win32.Registry.AccessControl.dll;\ - $(PS_PROFILE_REF_PATH)\Microsoft.Win32.Registry.dll;\ - $(PS_PROFILE_REF_PATH)\System.AppContext.dll;\ - $(PS_PROFILE_REF_PATH)\System.Collections.Concurrent.dll;\ - $(PS_PROFILE_REF_PATH)\System.Collections.dll;\ - $(PS_PROFILE_REF_PATH)\System.Collections.NonGeneric.dll;\ - $(PS_PROFILE_REF_PATH)\System.Collections.Specialized.dll;\ - $(PS_PROFILE_REF_PATH)\System.ComponentModel.Annotations.dll;\ - $(PS_PROFILE_REF_PATH)\System.ComponentModel.dll;\ - $(PS_PROFILE_REF_PATH)\System.ComponentModel.EventBasedAsync.dll;\ - $(PS_PROFILE_REF_PATH)\System.ComponentModel.Primitives.dll;\ - $(PS_PROFILE_REF_PATH)\System.ComponentModel.TypeConverter.dll;\ - $(PS_PROFILE_REF_PATH)\System.Console.dll;\ - $(PS_PROFILE_REF_PATH)\System.Data.Common.dll;\ - $(PS_PROFILE_REF_PATH)\System.Data.SqlClient.dll;\ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.Contracts.dll;\ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.Debug.dll;\ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.FileVersionInfo.dll;\ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.Process.dll;\ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.TextWriterTraceListener.dll;\ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.Tools.dll;\ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.TraceSource.dll;\ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.Tracing.dll;\ - $(PS_PROFILE_REF_PATH)\System.Dynamic.Runtime.dll;\ - $(PS_PROFILE_REF_PATH)\System.Globalization.Calendars.dll;\ - $(PS_PROFILE_REF_PATH)\System.Globalization.dll;\ - $(PS_PROFILE_REF_PATH)\System.Globalization.Extensions.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.Compression.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.Compression.ZipFile.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.FileSystem.AccessControl.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.FileSystem.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.FileSystem.DriveInfo.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.FileSystem.Primitives.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.FileSystem.Watcher.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.MemoryMappedFiles.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.Pipes.dll;\ - $(PS_PROFILE_REF_PATH)\System.IO.UnmanagedMemoryStream.dll;\ - $(PS_PROFILE_REF_PATH)\System.Linq.dll;\ - $(PS_PROFILE_REF_PATH)\System.Linq.Expressions.dll;\ - $(PS_PROFILE_REF_PATH)\System.Linq.Parallel.dll;\ - $(PS_PROFILE_REF_PATH)\System.Linq.Queryable.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.Http.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.Http.WinHttpHandler.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.NameResolution.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.NetworkInformation.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.Primitives.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.Security.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.Sockets.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.Utilities.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.WebHeaderCollection.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.WebSockets.Client.dll;\ - $(PS_PROFILE_REF_PATH)\System.Net.WebSockets.dll;\ - $(PS_PROFILE_REF_PATH)\System.ObjectModel.dll;\ - $(PS_PROFILE_REF_PATH)\System.Reflection.DispatchProxy.dll;\ - $(PS_PROFILE_REF_PATH)\System.Reflection.dll;\ - $(PS_PROFILE_REF_PATH)\System.Reflection.Emit.dll;\ - $(PS_PROFILE_REF_PATH)\System.Reflection.Emit.ILGeneration.dll;\ - $(PS_PROFILE_REF_PATH)\System.Reflection.Emit.Lightweight.dll;\ - $(PS_PROFILE_REF_PATH)\System.Reflection.Extensions.dll;\ - $(PS_PROFILE_REF_PATH)\System.Reflection.Primitives.dll;\ - $(PS_PROFILE_REF_PATH)\System.Reflection.TypeExtensions.dll;\ - $(PS_PROFILE_REF_PATH)\System.Resources.ReaderWriter.dll;\ - $(PS_PROFILE_REF_PATH)\System.Resources.ResourceManager.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.CompilerServices.VisualC.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.Extensions.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.Handles.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.InteropServices.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.InteropServices.WindowsRuntime.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.Loader.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.Numerics.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.Serialization.Json.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.Serialization.Primitives.dll;\ - $(PS_PROFILE_REF_PATH)\System.Runtime.Serialization.Xml.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.AccessControl.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Claims.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.DeriveBytes.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.Encoding.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.Encryption.Aes.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.Encryption.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.Hashing.Algorithms.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.Hashing.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.RandomNumberGenerator.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.RSA.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.X509Certificates.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Principal.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.Principal.Windows.dll;\ - $(PS_PROFILE_REF_PATH)\System.Security.SecureString.dll;\ - $(PS_PROFILE_REF_PATH)\System.ServiceModel.Duplex.dll;\ - $(PS_PROFILE_REF_PATH)\System.ServiceModel.Http.dll;\ - $(PS_PROFILE_REF_PATH)\System.ServiceModel.NetTcp.dll;\ - $(PS_PROFILE_REF_PATH)\System.ServiceModel.Primitives.dll;\ - $(PS_PROFILE_REF_PATH)\System.ServiceModel.Security.dll;\ - $(PS_PROFILE_REF_PATH)\System.ServiceProcess.ServiceController.dll;\ - $(PS_PROFILE_REF_PATH)\System.Text.Encoding.CodePages.dll;\ - $(PS_PROFILE_REF_PATH)\System.Text.Encoding.dll;\ - $(PS_PROFILE_REF_PATH)\System.Text.Encoding.Extensions.dll;\ - $(PS_PROFILE_REF_PATH)\System.Text.RegularExpressions.dll;\ - $(PS_PROFILE_REF_PATH)\System.Threading.AccessControl.dll;\ - $(PS_PROFILE_REF_PATH)\System.Threading.dll;\ - $(PS_PROFILE_REF_PATH)\System.Threading.Overlapped.dll;\ - $(PS_PROFILE_REF_PATH)\System.Threading.Tasks.dll;\ - $(PS_PROFILE_REF_PATH)\System.Threading.Tasks.Parallel.dll;\ - $(PS_PROFILE_REF_PATH)\System.Threading.Thread.dll;\ - $(PS_PROFILE_REF_PATH)\System.Threading.ThreadPool.dll;\ - $(PS_PROFILE_REF_PATH)\System.Threading.Timer.dll;\ - $(PS_PROFILE_REF_PATH)\System.Xml.ReaderWriter.dll;\ - $(PS_PROFILE_REF_PATH)\System.Xml.XDocument.dll;\ - $(PS_PROFILE_REF_PATH)\System.Xml.XmlDocument.dll;\ - $(PS_PROFILE_REF_PATH)\System.Xml.XmlSerializer.dll;\ - $(PS_PROFILE_REF_PATH)\System.Xml.XPath.dll;\ - $(PS_PROFILE_REF_PATH)\System.Xml.XPath.XDocument.dll;\ - $(PS_PROFILE_REF_PATH)\System.Xml.XPath.XmlDocument.dll;\ diff --git a/scripts/powershell.inc b/scripts/powershell.inc deleted file mode 100644 index 094806d3f..000000000 --- a/scripts/powershell.inc +++ /dev/null @@ -1,86 +0,0 @@ -# -# This file includes OneCore powershell CoreCLR references. Do not import this file directly. It is automatically imported -# when MANAGED_PROFILE=PowerShell is specified in sources file. -# -# This file is also depended on by the tool 'TypeCatalogGen.exe'. The tool tries to parse this file to get the list of reference -# assemblies used by OneCore powershell, and then use that list to generate the CSharp code for initializing the CoreCLR type -# catalog cache. That CSharp code will be compiled into 'Microsoft.PowerShell.CoreCLR.AssemblyLoadContext.dll' during the build. -# For more information about 'TypeCatalogGen.exe', see its source code under 'PSAssemblyLoadContext\TypeCatalogGen'. -# -# The parsing rule of this file in 'TypeCatalogGen.exe' is very simple: -# - Read each line of this file and trim it; -# - Skip comment lines; -# - Match the line with the regular expression pattern '^\$\(PS_PROFILE_REF_PATH\)\\(.+);\s*\\$' -# So when adding new reference assembly entries, please make sure the new lines match the above pattern. -# -PROFILE_REF_PATH=$(SDK_REF_PATH)\Profiles -PS_PROFILE_REF_PATH=$(PROFILE_REF_PATH)\PowerShell - -PROFILE_REFERENCES=\ - $(PS_PROFILE_REF_PATH)\Microsoft.CSharp.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\Microsoft.Win32.Registry.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\Microsoft.Win32.Primitives.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.collections.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Collections.NonGeneric.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.collections.concurrent.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Collections.Specialized.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.ComponentModel.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.ComponentModel.EventBasedAsync.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.ComponentModel.TypeConverter.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.dynamic.runtime.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.globalization.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.diagnostics.debug.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.FileVersionInfo.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.diagnostics.tools.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.TraceSource.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.diagnostics.contracts.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Diagnostics.Process.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.io.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.IO.Pipes.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.io.filesystem.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.IO.FileSystem.DriveInfo.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.io.filesystem.primitives.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.IO.FileSystem.Watcher.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.linq.expressions.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.linq.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.net.primitives.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.reflection.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.reflection.primitives.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.reflection.emit.lightweight.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Reflection.Emit.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.reflection.extensions.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Reflection.TypeExtensions.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.reflection.emit.ilgeneration.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.resources.resourcemanager.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.runtime.interopservices.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Runtime.Handles.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Runtime.Loader.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.runtime.numerics.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.runtime.serialization.primitives.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Runtime.Serialization.Xml.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.runtime.extensions.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Runtime.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.text.encoding.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Text.Encoding.Extensions.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.text.regularexpressions.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.threading.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.threading.tasks.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.threading.tasks.parallel.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.threading.timer.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.threading.thread.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.threading.threadpool.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.xml.readerwriter.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Xml.XmlDocument.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Xml.XmlSerializer.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Xml.XPath.XmlDocument.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Xml.XPath.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.Encoding.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.RandomNumberGenerator.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.X509Certificates.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Security.Cryptography.Encryption.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.security.securestring.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.security.principal.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.objectmodel.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\system.console.metadata_dll; \ - $(PS_PROFILE_REF_PATH)\System.Net.NetworkInformation.metadata_dll;\ - $(PS_PROFILE_REF_PATH)\mscorlib.metadata_dll;\ From d0e93b6b7ff9c0d3379c6ad2fb70b51e3570c54a Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Thu, 24 Sep 2015 13:07:59 -0700 Subject: [PATCH 14/21] Refactor build.sh - build.sh runs non-interactively - build-tty.sh runs interactively with a pseudo tty - both are shims to build-run.sh - monad-native no longer depends on a tty --- scripts/build-run.sh | 14 ++++++++++++++ scripts/build-tty.sh | 4 ++++ scripts/build.sh | 10 +++------- src/monad-native | 2 +- 4 files changed, 22 insertions(+), 8 deletions(-) create mode 100755 scripts/build-run.sh create mode 100755 scripts/build-tty.sh diff --git a/scripts/build-run.sh b/scripts/build-run.sh new file mode 100755 index 000000000..322d25bf2 --- /dev/null +++ b/scripts/build-run.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env sh + +# --rm: always run ephemerally +# --volume: path must be absolute, so resolve it +# --workdir: start location for Make +# $DOCKERFLAGS: additional flags +# magrathea: contains all dependencies +# bash: use $* over $@ so that multi-word parameters aren't split up +docker run --rm \ + --volume $(dirname $(pwd))/:/opt/monad-linux \ + --workdir /opt/monad-linux/scripts \ + $DOCKERFLAGS \ + andschwa/magrathea:latest \ + bash -c "$*" diff --git a/scripts/build-tty.sh b/scripts/build-tty.sh new file mode 100755 index 000000000..ad70fae86 --- /dev/null +++ b/scripts/build-tty.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env sh + +# Runs with a pseudo tty so that interactive shells can be opened +DOCKERFLAGS="--interactive --tty" ./build-run.sh "$*" diff --git a/scripts/build.sh b/scripts/build.sh index 72b1f2272..225e5953f 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,9 +1,5 @@ #!/usr/bin/env sh -# Docker requires the volume path to be absolute... so we resolve it ourselves. -docker run --rm --interactive --tty \ - --volume $(dirname $(pwd))/:/opt/monad \ - --workdir /opt/monad/scripts \ - andschwa/magrathea:latest \ - bash -c "/opt/fakelogin; $*" -# we use $* over $@ so that multi-word parameters aren't split up +echo "$*" +# Runs by non-interactively, just attaches output +DOCKERFLAGS="--attach STDOUT --attach STDERR" ./build-run.sh "$*" diff --git a/src/monad-native b/src/monad-native index 5693da6a4..1366e3bc8 160000 --- a/src/monad-native +++ b/src/monad-native @@ -1 +1 @@ -Subproject commit 5693da6a46e8c4d63a49a6dbc6be3081ce7d0d08 +Subproject commit 1366e3bc8fa2df702d2fc5c1dda65e54b51e36ea From 3ea6e96663f922208f638ce8566eb5370db05af4 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Thu, 24 Sep 2015 20:17:29 -0700 Subject: [PATCH 15/21] Run as local user inside Docker container --- scripts/build-run.sh | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/scripts/build-run.sh b/scripts/build-run.sh index 322d25bf2..9cbda2808 100755 --- a/scripts/build-run.sh +++ b/scripts/build-run.sh @@ -1,14 +1,25 @@ #!/usr/bin/env sh -# --rm: always run ephemerally -# --volume: path must be absolute, so resolve it -# --workdir: start location for Make -# $DOCKERFLAGS: additional flags -# magrathea: contains all dependencies -# bash: use $* over $@ so that multi-word parameters aren't split up +CUID=$(id -u) +CUSER=$(id -un) +CGID=$(id -g) +CGROUP=$(id -gn) +DIR=/opt/monad-linux +VOLUME=$(dirname $(pwd))/:$DIR + +# creates new user in container matching the local user so that +# artifacts will be owned by the local user (instead of root) +impersonate() +{ + echo \ + groupadd -g $CGID $CGROUP '&&' \ + useradd -u $CUID -g $CGID -d $DIR $CUSER '&&' \ + sudo -u $CUSER -g $CGROUP +} + docker run --rm \ - --volume $(dirname $(pwd))/:/opt/monad-linux \ - --workdir /opt/monad-linux/scripts \ + --volume $VOLUME \ + --workdir $DIR/scripts \ $DOCKERFLAGS \ andschwa/magrathea:latest \ - bash -c "$*" + bash -c "$(impersonate) $*" From be7932155ab2330ebdaf40b2fe65d1d549ba40b6 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Fri, 25 Sep 2015 10:20:38 -0700 Subject: [PATCH 16/21] Make impersonation switchable Useful when debugging issues with root vs non-root --- scripts/build-run.sh | 5 ++++- scripts/build-tty.sh | 3 ++- scripts/build.sh | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/build-run.sh b/scripts/build-run.sh index 9cbda2808..c1cb25a6f 100755 --- a/scripts/build-run.sh +++ b/scripts/build-run.sh @@ -8,9 +8,12 @@ DIR=/opt/monad-linux VOLUME=$(dirname $(pwd))/:$DIR # creates new user in container matching the local user so that -# artifacts will be owned by the local user (instead of root) +# artifacts will be owned by the local user; set IMPERSONATE to false +# to disable and run as root, defaults to true +if [[ ! $IMPERSONATE ]]; then IMPERSONATE=true; fi impersonate() { + if ! $IMPERSONATE; then return; fi echo \ groupadd -g $CGID $CGROUP '&&' \ useradd -u $CUID -g $CGID -d $DIR $CUSER '&&' \ diff --git a/scripts/build-tty.sh b/scripts/build-tty.sh index ad70fae86..d6dfcbea6 100755 --- a/scripts/build-tty.sh +++ b/scripts/build-tty.sh @@ -1,4 +1,5 @@ #!/usr/bin/env sh # Runs with a pseudo tty so that interactive shells can be opened -DOCKERFLAGS="--interactive --tty" ./build-run.sh "$*" +export DOCKERFLAGS="--interactive --tty" +./build-run.sh "$*" diff --git a/scripts/build.sh b/scripts/build.sh index 225e5953f..abf252cc2 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,5 +1,5 @@ #!/usr/bin/env sh -echo "$*" # Runs by non-interactively, just attaches output -DOCKERFLAGS="--attach STDOUT --attach STDERR" ./build-run.sh "$*" +export DOCKERFLAGS="--attach STDOUT --attach STDERR" +./build-run.sh "$*" From 86ebb7efb86a6a2820c3165eae02c1b835fb0fd1 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Fri, 25 Sep 2015 10:40:36 -0700 Subject: [PATCH 17/21] Ignore NuGet folders --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index df7c361ab..1bebec4e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .idea +.config/ +.nuget\\packages\\/ CMakeCache.txt CMakeFiles/ Makefile From c8c05b23fb58029defb046f801883e96c3ca94a4 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Thu, 1 Oct 2015 10:36:23 -0700 Subject: [PATCH 18/21] Run sudo with --set-home --- scripts/build-run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-run.sh b/scripts/build-run.sh index c1cb25a6f..625dc12c3 100755 --- a/scripts/build-run.sh +++ b/scripts/build-run.sh @@ -17,7 +17,7 @@ impersonate() echo \ groupadd -g $CGID $CGROUP '&&' \ useradd -u $CUID -g $CGID -d $DIR $CUSER '&&' \ - sudo -u $CUSER -g $CGROUP + sudo --set-home -u $CUSER -g $CGROUP } docker run --rm \ From c40bae356a11567362eb9cb6fad33061e6aa3a94 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Thu, 1 Oct 2015 10:46:45 -0700 Subject: [PATCH 19/21] Repin monad to 2015-10-01 --- scripts/commands-utility.mk | 6 ++ .../COMMANDS_UTILITY/AddAssemblyStrings.cs | 72 ++++++++++++++++++ .../AddAssemblyStrings.resources | Bin 0 -> 354 bytes .../gen/SYS_AUTO/FileSystemProviderStrings.cs | 11 ++- .../FileSystemProviderStrings.resources | Bin 8114 -> 8220 bytes scripts/gen/SYS_AUTO/Modules.cs | 9 +++ scripts/gen/SYS_AUTO/Modules.resources | Bin 27776 -> 27933 bytes scripts/gen/SYS_AUTO/ParserStrings.cs | 27 +++++++ scripts/gen/SYS_AUTO/ParserStrings.resources | Bin 59377 -> 59963 bytes .../gen/SYS_AUTO/RemotingErrorIdStrings.cs | 18 ++--- .../SYS_AUTO/RemotingErrorIdStrings.resources | Bin 74521 -> 74340 bytes scripts/gen/SYS_AUTO/SessionStateStrings.cs | 9 --- .../SYS_AUTO/SessionStateStrings.resources | Bin 33250 -> 33140 bytes src/monad | 2 +- 14 files changed, 134 insertions(+), 20 deletions(-) create mode 100755 scripts/gen/COMMANDS_UTILITY/AddAssemblyStrings.cs create mode 100755 scripts/gen/COMMANDS_UTILITY/AddAssemblyStrings.resources diff --git a/scripts/commands-utility.mk b/scripts/commands-utility.mk index 9b0ffc20f..1ddd09eeb 100644 --- a/scripts/commands-utility.mk +++ b/scripts/commands-utility.mk @@ -54,6 +54,7 @@ COMMANDS_UTILITY_SRCS_WIN=\ ../../../jws/pswin/admin/monad/src/commands/utility/WriteProgressCmdlet.cs \ ../../../jws/pswin/admin/monad/src/commands/utility/Update-Data.cs \ ../../../jws/pswin/admin/monad/src/commands/utility/Update-TypeData.cs \ + ../../../jws/pswin/admin/monad/src/commands/utility/AddAssembly.cs \ ../../../jws/pswin/admin/monad/src/commands/utility/FormatAndOutput/common/GetFormatDataCommand.cs \ ../../../jws/pswin/admin/monad/src/commands/utility/FormatAndOutput/common/WriteFormatDataCommand.cs \ ../../../jws/pswin/admin/monad/src/commands/utility/FormatAndOutput/format-list/Format-List.cs \ @@ -126,6 +127,7 @@ COMMANDS_UTILITY_SRCS=\ $(ADMIN_GIT_ROOT)/monad/src/commands/utility/WriteProgressCmdlet.cs \ $(ADMIN_GIT_ROOT)/monad/src/commands/utility/Update-Data.cs \ $(ADMIN_GIT_ROOT)/monad/src/commands/utility/Update-TypeData.cs \ + $(ADMIN_GIT_ROOT)/monad/src/commands/utility/AddAssembly.cs \ $(ADMIN_GIT_ROOT)/monad/src/commands/utility/FormatAndOutput/common/GetFormatDataCommand.cs \ $(ADMIN_GIT_ROOT)/monad/src/commands/utility/FormatAndOutput/common/WriteFormatDataCommand.cs \ $(ADMIN_GIT_ROOT)/monad/src/commands/utility/FormatAndOutput/format-list/Format-List.cs \ @@ -171,6 +173,7 @@ COMMANDS_UTILITY_RESX_SRCS=\ ../../../jws/pswin/admin/monad/src/commands/utility/resources/UpdateDataStrings.resx \ ../../../jws/pswin/admin/monad/src/commands/utility/resources/ImportLocalizedDataStrings.resx \ ../../../jws/pswin/admin/monad/src/commands/utility/resources/WriteProgressResourceStrings.resx \ + ../../../jws/pswin/admin/monad/src/commands/utility/resources/AddAssemblyStrings.resx \ ../../../jws/pswin/admin/monad/src/commands/utility/resources/AliasCommandStrings.resx \ @@ -195,6 +198,7 @@ COMMANDS_UTILITY_RES_SRCS=\ gen/COMMANDS_UTILITY/UpdateDataStrings.resources \ gen/COMMANDS_UTILITY/ImportLocalizedDataStrings.resources \ gen/COMMANDS_UTILITY/WriteProgressResourceStrings.resources \ + gen/COMMANDS_UTILITY/AddAssemblyStrings.resources \ gen/COMMANDS_UTILITY/AliasCommandStrings.resources \ @@ -219,6 +223,7 @@ COMMANDS_UTILITY_RES_CS_SRCS=\ gen/COMMANDS_UTILITY/UpdateDataStrings.cs \ gen/COMMANDS_UTILITY/ImportLocalizedDataStrings.cs \ gen/COMMANDS_UTILITY/WriteProgressResourceStrings.cs \ + gen/COMMANDS_UTILITY/AddAssemblyStrings.cs \ gen/COMMANDS_UTILITY/AliasCommandStrings.cs \ @@ -243,6 +248,7 @@ COMMANDS_UTILITY_RES_REF=\ -resource:gen/COMMANDS_UTILITY/UpdateDataStrings.resources \ -resource:gen/COMMANDS_UTILITY/ImportLocalizedDataStrings.resources \ -resource:gen/COMMANDS_UTILITY/WriteProgressResourceStrings.resources \ + -resource:gen/COMMANDS_UTILITY/AddAssemblyStrings.resources \ -resource:gen/COMMANDS_UTILITY/AliasCommandStrings.resources \ diff --git a/scripts/gen/COMMANDS_UTILITY/AddAssemblyStrings.cs b/scripts/gen/COMMANDS_UTILITY/AddAssemblyStrings.cs new file mode 100755 index 000000000..22b8cb136 --- /dev/null +++ b/scripts/gen/COMMANDS_UTILITY/AddAssemblyStrings.cs @@ -0,0 +1,72 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34209 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + + + +/// +/// A strongly-typed resource class, for looking up localized strings, etc. +/// +// This class was auto-generated by the StronglyTypedResourceBuilder +// class via a tool like ResGen or Visual Studio. +// To add or remove a member, edit your .ResX file then rerun ResGen +// with the /str option, or rebuild your VS project. +[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] +[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] +[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] +internal class AddAssemblyStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal AddAssemblyStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AddAssemblyStrings", typeof(AddAssemblyStrings).GetTypeInfo().Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Cannot load the assembly because path '{0}' referred to a '{1}' provider path. Change the path to a file system path.. + /// + internal static string SupportFileSystemOnly { + get { + return ResourceManager.GetString("SupportFileSystemOnly", resourceCulture); + } + } +} diff --git a/scripts/gen/COMMANDS_UTILITY/AddAssemblyStrings.resources b/scripts/gen/COMMANDS_UTILITY/AddAssemblyStrings.resources new file mode 100755 index 0000000000000000000000000000000000000000..7716dbae28dd37612f808d93d404b15ee46b6a41 GIT binary patch literal 354 zcmZWlJ5Iwu5S>tPj*%!LA#fX0GyxbfrG#SC^!Ty z1y{)02pZ-i%{;v~Gn$Y0@3#pNJ;zjK?>yRc180J*;r^-(#1=N;*44%;StWc6>!i{7 zJk17AxCqJzi(DgkD^$YkP$^kop}#Tr(0R37ibcIRovlvh$j(+r|Ca^rWsBeKCHz4= zYB+AN_4&mRuZN#6L;Dr;xTHW`bVHUrU6Le4pptrWu?MwuO*&%zprA=8gx1EhGGfcV z0So8QR;uR;wFnN}3E%MaF?*V_#SYdY5)F%p%_7!W^C06RMqbKABlI1{NuzLN?xX^{ I@sU5YJs<>b^Z)<= literal 0 HcmV?d00001 diff --git a/scripts/gen/SYS_AUTO/FileSystemProviderStrings.cs b/scripts/gen/SYS_AUTO/FileSystemProviderStrings.cs index 4572fb948..0fc7314b6 100644 --- a/scripts/gen/SYS_AUTO/FileSystemProviderStrings.cs +++ b/scripts/gen/SYS_AUTO/FileSystemProviderStrings.cs @@ -196,6 +196,15 @@ internal class FileSystemProviderStrings { } } + /// + /// Looks up a localized string similar to Destination folder '{0}' does not exist.. + /// + internal static string CopyItemDirectoryNotFound { + get { + return ResourceManager.GetString("CopyItemDirectoryNotFound", resourceCulture); + } + } + /// /// Looks up a localized string similar to Destination path {0} is a file that already exists on the target destination.. /// @@ -206,7 +215,7 @@ internal class FileSystemProviderStrings { } /// - /// Looks up a localized string similar to Cannot copy a directory '{0}' to file {0}'. + /// Looks up a localized string similar to Cannot copy a directory '{0}' to file '{0}'. /// internal static string CopyItemRemotelyDestinationIsFile { get { diff --git a/scripts/gen/SYS_AUTO/FileSystemProviderStrings.resources b/scripts/gen/SYS_AUTO/FileSystemProviderStrings.resources index 4c9458ea8a0d9fdb6f4e496ffa6a4d47ae10e535..0a31ab34a2267db524280548f2f8e8858d242885 100644 GIT binary patch delta 1050 zcmY*XZAepL6h80V-FENY?yj{&Y|d$GmaZjgGcrtbNs5MK^}~d+oG_|QwrPpkN+>8o zvO`o*kP$_J5E;}Wq5=sj`Xu^ML?6)CkD#J5i0GMw*@g4o=RD_}=e)e_qr!oLCC6zV*%5b8dn zc_r!s=rM+VCd5BbG0{B~9!4OJ!XHR9!cRfC1_im`J^{an$f?nvhDU~lrL`2LF6yOv zN>GTlP>{kD1KJ2b3e-z0@J~=3&TfiO2RYHIit}X$zm$rkI(SR}dKNA=d8I>Oe3Q&E zvo75PvtkP4;7cZ#^b>5`f2?BmiBcZ2c=&`_=S`?=!;`IsVwYSgO1M>ai$?B~%f(SX4}6**%3kq|$7R1^hKc7W zc_PBg6|cC;QN<~~@P5T7=5tE%h!DTP`Ia-(YVnnWsz?0hFwQa_RCB}tpH-cvTNs|d z>7ack_gkl#UcvLgo27gPTG)ig>|tFk6Tf(!wZxDu^N@A6DB?z&i=S9^Q89sxHeIU6 z{7SjmmcwPXY|#qdFS@u7=K!Cx6^T3i#8!ZNjRPlmmgW&pdAU|2&$wPVsDT88m)HZMl6&kvtqJS8crq=0OQ{u9Ip^yI{J=O( z^l+~3mj=NFz-4i#?sg5s%WlD*q<1H+UNf;lVW>xFj8Ex)@tPm&skls|+#?4$qy delta 956 zcmZWnTS!!45T02*yJyeYJ-f;(V(V>Ntu|TBWTh0%%)%svv?MX`f<{;>Rz^fg8VKEG z2rHzE4-s}jlQJ}&2FT5Thm!g|w0)Lj~ zS72otQHen`fW9#z@`IOV%JUU`8^)qj;DODbDrQuRuR*KctuYjB>OOLzgL9B9K5G*K$m z6z-4{Y6(Ar#wO(hSc@lHXZ4uAh0AVhHY;-3n#f5qV$I|x`GWYUIJFcWkSxt_np0$t zmcRwl1*lu@X>J~u=UOU<%MZ=V>m^S2Dx>&JIg+Hiq*7nW&!kiL@*BAYugZiT%N6oj zcbj|hA^qDV&#_D%+ak>mk$OYva(*f`wj6#XS8eI01yv?($)=zxXY6s}vOC!(r|t1k zTj>xrQ5_wmz0`~-9{({z&f8<9)gHrX;P|;vM&K)C*6!o$;xas#GRyFBk<=Pqz9U^m zhG|BVQKNv9C1?crngkrF?m=9w=Fba|DQ8lk&jM44@+c3CYQ;U th}^idxQWp_Fi0b;nGVC3(-CSx^R#`aFCrmK=3S-ilkBLJq1vbs?H83g*AM^z diff --git a/scripts/gen/SYS_AUTO/Modules.cs b/scripts/gen/SYS_AUTO/Modules.cs index 1698dd5e6..89a618ff2 100644 --- a/scripts/gen/SYS_AUTO/Modules.cs +++ b/scripts/gen/SYS_AUTO/Modules.cs @@ -764,6 +764,15 @@ internal class Modules { } } + /// + /// Looks up a localized string similar to The module to process '{0}', listed in field '{1}' of module manifest '{2}' was not processed. {3}. + /// + internal static string ManifestMemberNotValid { + get { + return ResourceManager.GetString("ManifestMemberNotValid", resourceCulture); + } + } + /// /// Looks up a localized string similar to The specified MaximumVersion '{0}' was incorrect. If you are using '*', MaximumVersion only supports one '*' and should always be placed at the end of MaximumVersion.. /// diff --git a/scripts/gen/SYS_AUTO/Modules.resources b/scripts/gen/SYS_AUTO/Modules.resources index e21385a99b806a11f0d248d5495eafb4f97867b3..496f83d23096c10c8e80c79dbfd777486f493658 100644 GIT binary patch delta 1630 zcmYjQYitx%6h1TMLSOW;bi3Qx+1c4;cJ|TjQec5?fh{eM)~2*5rHKeFg`%{jsl2MF zr3DiCfg*4u#8#jszA=~v5&{vDMKq=oUq2cl4b~78d_>TQA=T)&n_}F}x%Zy$-t(RB zoO`GDnsn^CbZ}5QdFZ5P(t{Iy`-ZMOE%%6gqFV}4icI9rCfZ~ndJJ=uhp632q`8Ui zXAyk{8-VpYh-~RZB{(;oh+akPIgO~oMr5}VSp{NK!HM`CSQk$t`f3tUZ4OaxF3~r@ z0(nGxf!|G|9vVep1P2a)>@pIsRf&!j5Iu{;Z$Mlv0v=%A?IP;Hd;{cOtUto~AmVOg zK0AfzwKSqWa2g^Di0zJz}tF^{711*klN^D%T}4akSlod*!}F1Xwf)DA&6 z(Zxmx2?Oth9R~Mr$a4pUhFhRy9Kk<o-o+V|+eQA9ommQ7%e zK*|susJw`Up@sP^H-48!G1*IQOsj!&WlyqQi!Eo)mlrPw4EBLnKn}^wa_^*m-3)h zt4#w?W7+9JhsK)ywy6J4L6LsEUhoRo-t8 z3DZQv3D3@V?TSeEK~EAXEGQLc;VnygFBSx)_jsrvDvAR{OOjZ+;ul@;HYL54N{u`_ z$b*VY`j+ELR8$w@&GBwUlPUMIX@m|Dj=Ngm<}C3o!@ZR1zO|>0&9o znxq%g!}7s7+~acdD|%Eu|8QyHzjRYvn473-zgy2JPd=e$+~aEA=Qg;@og?kSDk8nf zAG-bW)p>l{aB-DKVV5UWWJD8P9WqoPez6W-DCspBleyna7v&`h0g3$ygunLa;uO&E z1Zok{Qha$6p30+O9RgDSAM*BeRm`7H)b$X-gO$GEGNW3&upn{cLxv`&ErhOedBZ}! zXV|21PVG$Hvb@=CI^e-loJms5Po40XYn|9`^pPkZr{$%M|5!Rod-F>EUnaBJW*Xd?J delta 1555 zcmX|BeN2^g6n=g${J=mjAaFlk-uwN*1>qW#fnE^>8K@IP#G8>RC}tP}1MS1+u$FBu zbLjcQS~??#=Bk+=O`XlkvYCD9=2mK!wq~`~Y}J^RX3u3Vw)6hZd4A_S&pGFPFS{?R zO_$Wruo~X}THw&xK4b7=K5*0oQVhVK1yoK1VgVrT27dJcqc-4E+N-oR1%M+17{{C- zfR(I!-UH+~fFJXKd<`rgM?TiCr+=4u7g7OtHgJvhHL+W{Knv}+`+zqbNT8ev+eo&Z z;w2W)?E)J7zIS&0e62=eH#PlY%?w53%kT&!g$U%OvY!6P+BUhBhKOsgA)u zN^VrZu1w$(?FT0iNdck{As^!eD z=J-p~sK{0PMdbtJ@>4xd^}}4*GOj5`yf+;g=pgy;6gn=4Qga92;?y=$4>7fmaxEPA z3gs@4`Wo9D$Hq6Z9K1`RL_6hIvF+K!{@~rr2|yNQ%ed*Exv0~uKbJ#3;=8!0Gvk2| zd2ZmnV%yKMwRgCJo#dJ8!yqatmcqhKEHYShhZpO(k0`}@i67?c8sXi8#Fn$|1n0WR zcsYp=aFn&2uZIJi;|{hF`-06JWbQ-Ed4X6ebCQ3>Z2BfS7tl`lfNyy2j~+R#TeDPL zt_3aW%=hSHWGfkqTCMDib}k{&h%WR2N zv!r~y5xwZddUWsbI%L$IPz}=P2=Up^XS%%WaLPf)c(s{cNTtbjhf{5lza24sJj810 zGcB3xY}1)xV9r?dk+VdfX4G^qa!QfQ)cYcAYYgdh#Z|NHam~~9QGNQ2t zPm-4kO0_NlOj&4}I;S*AN>5U(V(uYkRp<@GOxbFh#;sD>Yz1={#enh6ScEz@vyOH# zCMT^1oi-T=Nyo&HuA^5>&yx9Wn|_8-fKi?dxor9qMs^u?+f}aYb}!MV?gy4Io|pXq zsru2Ad@ERuJ7v=9DK)1|0rHxO_hJpFUP-~ljJmkhS3L2+US2y}c+pMkzyP03OkKxw z051N79+8vYh`7D8RD~?_E>Zn*%-g1ic~i|BkCgj-`Z}ZeW6=}7m?{zFFPF={h+0gq zO(kThKW2zc~swEq-_)T81F)aw0=>qLbtsScR(uxZn`iI6N5 zknDmCeRXP52CfwL<4PN|nVfRQTk2E39M4w!cd=d~~+xrF~eTUPFr+Hi?+Wrp;H%Zy)U z$lh>~njoKtL;6&8vhxdJpV%WIWy$nNM6Hn(kvUn<&E)@yR_=8*Wq+C}Cn8~0CErDS z#;sYR3M;wOX@wDEPmOdGt~Jio$oawrs$P82WyYJevMCx?TJ}XNROOMY(Ua~Yx9k0p F{{RExPfq{< diff --git a/scripts/gen/SYS_AUTO/ParserStrings.cs b/scripts/gen/SYS_AUTO/ParserStrings.cs index 82d51f4f3..4873d9a3b 100644 --- a/scripts/gen/SYS_AUTO/ParserStrings.cs +++ b/scripts/gen/SYS_AUTO/ParserStrings.cs @@ -342,6 +342,15 @@ internal class ParserStrings { } } + /// + /// Looks up a localized string similar to Cannot create type. Only core types are supported in this language mode.. + /// + internal static string CannotCreateTypeConstrainedLanguage { + get { + return ResourceManager.GetString("CannotCreateTypeConstrainedLanguage", resourceCulture); + } + } + /// /// Looks up a localized string similar to Cannot find an appropriate constructor to instantiate the custom attribute object for type '{0}'.. /// @@ -676,6 +685,15 @@ internal class ParserStrings { } } + /// + /// Looks up a localized string similar to PartialConfiguration '{0}' has a Refresh Mode set to Disabled which is not a valid mode for Partial Configurations. Use Pull or Push refresh mode. . + /// + internal static string DisabledRefreshModeNotValidForPartialConfig { + get { + return ResourceManager.GetString("DisabledRefreshModeNotValidForPartialConfig", resourceCulture); + } + } + /// /// Looks up a localized string similar to Cannot find an overload for "{0}" and the argument count: "{1}". /// @@ -1289,6 +1307,15 @@ internal class ParserStrings { } } + /// + /// Looks up a localized string similar to The PartialConfiguration '{0}' is set to pull mode which requires a ConfigurationSource property.. + /// + internal static string GetPullModeNeedConfigurationSource { + get { + return ResourceManager.GetString("GetPullModeNeedConfigurationSource", resourceCulture); + } + } + /// /// Looks up a localized string similar to There is no Runspace available to get and run the SteppablePipeline in this thread. You can provide one in the DefaultRunspace property of the System.Management.Automation.Runspaces.Runspace type. The script block you attempted to get SteppablePipeline from was: {0}. /// diff --git a/scripts/gen/SYS_AUTO/ParserStrings.resources b/scripts/gen/SYS_AUTO/ParserStrings.resources index c84df64b14dca32ac4f4150492aa7ec0f218ee90..116a84359b04deca1bab8c553a1eb49168d936c2 100644 GIT binary patch delta 6008 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 delta 5313 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 Qf5`fiZGngUZ%uCaZ@wFR - /// Looks up a localized string similar to Role Capabilities to apply to this session configuration. This role capability must be defined as a PowerShell Role Capability (.psrc) file named after that role capability within a 'RoleCapabilities' directory in a module in the current module path.. - /// - internal static string DISCRoleCapabilitiesToLoadComment { - get { - return ResourceManager.GetString("DISCRoleCapabilitiesToLoadComment", resourceCulture); - } - } - /// /// Looks up a localized string similar to User roles (security groups), and the role capabilities that should be applied to them when applied to a session. /// @@ -1028,6 +1019,15 @@ internal class RemotingErrorIdStrings { } } + /// + /// Looks up a localized string similar to Groups associated with machine's (virtual) administrator account. + /// + internal static string DISCRunAsVirtualAccountGroupsComment { + get { + return ResourceManager.GetString("DISCRunAsVirtualAccountGroupsComment", resourceCulture); + } + } + /// /// Looks up a localized string similar to Version number of the schema used for this document. /// diff --git a/scripts/gen/SYS_AUTO/RemotingErrorIdStrings.resources b/scripts/gen/SYS_AUTO/RemotingErrorIdStrings.resources index de3571e7fd1a35b9fe78897e9e9cf534beaebb57..bff6014c345bcdb9592b8052e7b6fb9372e5c270 100644 GIT binary patch delta 5439 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 delta 5570 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 - /// Looks up a localized string similar to The remote path '{0}' is not valid.. - /// - internal static string CopyItemRemotelyPathIsNotValid { - get { - return ResourceManager.GetString("CopyItemRemotelyPathIsNotValid", resourceCulture); - } - } - /// /// Looks up a localized string similar to '{0}' parameter cannot be null or empty.. /// diff --git a/scripts/gen/SYS_AUTO/SessionStateStrings.resources b/scripts/gen/SYS_AUTO/SessionStateStrings.resources index 3ae06c1d4e104ff84d651b8fd0cca58ed5f8e69b..eb1db39f59c2a77bee57f6fe23c9857f4eef6bac 100644 GIT binary patch delta 2163 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 Date: Thu, 1 Oct 2015 13:04:58 -0700 Subject: [PATCH 20/21] Repin monad-ext with System.Console patch --- src/monad-ext | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/monad-ext b/src/monad-ext index ea31eca62..8b2027617 160000 --- a/src/monad-ext +++ b/src/monad-ext @@ -1 +1 @@ -Subproject commit ea31eca6223992fa9729af67518930b6b45829d3 +Subproject commit 8b2027617092bc93c4f2977b218145e9b93ec3f3 From e9a1b5aaf0f8fb2cb81643c2b53f4988831ed6f0 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Thu, 1 Oct 2015 13:05:33 -0700 Subject: [PATCH 21/21] Repin monad-native with updated gitignore --- src/monad-native | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/monad-native b/src/monad-native index 1366e3bc8..d1de7e28c 160000 --- a/src/monad-native +++ b/src/monad-native @@ -1 +1 @@ -Subproject commit 1366e3bc8fa2df702d2fc5c1dda65e54b51e36ea +Subproject commit d1de7e28c52a87a0804b76445a07b1d122417436