Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
3b0c84b9
Unverified
Commit
3b0c84b9
authored
Jun 04, 2020
by
Jonah Williams
Committed by
GitHub
Jun 04, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "use Expand-Archive and Compress-Archive in windows os utils (#58390)" (#58719)
This reverts commit
bbe18f75
.
parent
253eb1cf
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
152 deletions
+23
-152
os.dart
packages/flutter_tools/lib/src/base/os.dart
+23
-25
os_test.dart
packages/flutter_tools/test/general.shard/base/os_test.dart
+0
-127
No files found.
packages/flutter_tools/lib/src/base/os.dart
View file @
3b0c84b9
...
...
@@ -291,15 +291,7 @@ class _WindowsUtils extends OperatingSystemUtils {
logger:
logger
,
platform:
platform
,
processManager:
processManager
,
)
{
if
(
processManager
.
canRun
(
'pwsh.exe'
))
{
_activePowershell
=
'pwsh.exe'
;
}
else
{
_activePowershell
=
'PowerShell.exe'
;
}
}
String
_activePowershell
;
);
@override
void
makeExecutable
(
File
file
)
{}
...
...
@@ -323,30 +315,36 @@ class _WindowsUtils extends OperatingSystemUtils {
@override
void
zip
(
Directory
data
,
File
zipFile
)
{
final
RunResult
result
=
_processUtils
.
runSync
(<
String
>[
_activePowershell
,
'-command'
,
'"Compress-Archive
${data.path}
-DestinationPath
${zipFile.path}
"'
,
]);
if
(
result
.
stderr
.
isNotEmpty
)
{
throw
ProcessException
(
_activePowershell
,
<
String
>[
'Compress-Archive'
],
result
.
stderr
);
final
Archive
archive
=
Archive
();
for
(
final
FileSystemEntity
entity
in
data
.
listSync
(
recursive:
true
))
{
if
(
entity
is
!
File
)
{
continue
;
}
final
File
file
=
entity
as
File
;
final
String
path
=
file
.
fileSystem
.
path
.
relative
(
file
.
path
,
from:
data
.
path
);
final
List
<
int
>
bytes
=
file
.
readAsBytesSync
();
archive
.
addFile
(
ArchiveFile
(
path
,
bytes
.
length
,
bytes
));
}
zipFile
.
writeAsBytesSync
(
ZipEncoder
().
encode
(
archive
),
flush:
true
);
}
@override
void
unzip
(
File
file
,
Directory
targetDirectory
)
{
final
RunResult
result
=
_processUtils
.
runSync
(<
String
>[
_activePowershell
,
'-command'
,
'"Expand-Archive
${file.path}
-DestinationPath
${targetDirectory.path}
"'
,
],
throwOnError:
true
);
if
(
result
.
stderr
.
isNotEmpty
)
{
throw
ProcessException
(
_activePowershell
,
<
String
>[
'Expand-Archive'
],
result
.
stderr
);
}
final
Archive
archive
=
ZipDecoder
().
decodeBytes
(
file
.
readAsBytesSync
());
_unpackArchive
(
archive
,
targetDirectory
);
}
@override
bool
verifyZip
(
File
zipFile
)
=>
true
;
bool
verifyZip
(
File
zipFile
)
{
try
{
ZipDecoder
().
decodeBytes
(
zipFile
.
readAsBytesSync
(),
verify:
true
);
}
on
FileSystemException
catch
(
_
)
{
return
false
;
}
on
ArchiveException
catch
(
_
)
{
return
false
;
}
return
true
;
}
@override
void
unpack
(
File
gzippedTarFile
,
Directory
targetDirectory
)
{
...
...
packages/flutter_tools/test/general.shard/base/os_test.dart
View file @
3b0c84b9
...
...
@@ -21,17 +21,6 @@ const String kExecutable = 'foo';
const
String
kPath1
=
'/bar/bin/
$kExecutable
'
;
const
String
kPath2
=
'/another/bin/
$kExecutable
'
;
const
String
kPowershellException
=
r''
'
New-Object : Exception calling ".ctor" with "3" argument(s): "End of Central Directory record could not be found."
At
C:
\
Windows
\
system32
\
WindowsPowerShell
\
v1.0
\
Modules
\
Microsoft.PowerShell.Archive
\
Microsoft.PowerShell.Archive.psm1:934
char:23
+ ... ipArchive = New-Object -TypeName System.IO.Compression.ZipArchive -Ar ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
'''
;
void
main
(
)
{
MockProcessManager
mockProcessManager
;
...
...
@@ -78,7 +67,6 @@ void main() {
testWithoutContext
(
'returns null when executable does not exist'
,
()
async
{
when
(
mockProcessManager
.
runSync
(<
String
>[
'where'
,
kExecutable
]))
.
thenReturn
(
ProcessResult
(
0
,
1
,
null
,
null
));
when
(
mockProcessManager
.
canRun
(
'pwsh.exe'
)).
thenReturn
(
true
);
final
OperatingSystemUtils
utils
=
createOSUtils
(
FakePlatform
(
operatingSystem:
'windows'
));
expect
(
utils
.
which
(
kExecutable
),
isNull
);
});
...
...
@@ -86,7 +74,6 @@ void main() {
testWithoutContext
(
'returns exactly one result'
,
()
async
{
when
(
mockProcessManager
.
runSync
(<
String
>[
'where'
,
'foo'
]))
.
thenReturn
(
ProcessResult
(
0
,
0
,
'
$kPath1
\n
$kPath2
'
,
null
));
when
(
mockProcessManager
.
canRun
(
'pwsh.exe'
)).
thenReturn
(
true
);
final
OperatingSystemUtils
utils
=
createOSUtils
(
FakePlatform
(
operatingSystem:
'windows'
));
expect
(
utils
.
which
(
kExecutable
).
path
,
kPath1
);
});
...
...
@@ -94,7 +81,6 @@ void main() {
testWithoutContext
(
'returns all results for whichAll'
,
()
async
{
when
(
mockProcessManager
.
runSync
(<
String
>[
'where'
,
kExecutable
]))
.
thenReturn
(
ProcessResult
(
0
,
0
,
'
$kPath1
\n
$kPath2
'
,
null
));
when
(
mockProcessManager
.
canRun
(
'pwsh.exe'
)).
thenReturn
(
true
);
final
OperatingSystemUtils
utils
=
createOSUtils
(
FakePlatform
(
operatingSystem:
'windows'
));
final
List
<
File
>
result
=
utils
.
whichAll
(
kExecutable
);
expect
(
result
,
hasLength
(
2
));
...
...
@@ -111,7 +97,6 @@ void main() {
when
(
mockFile
.
readAsBytesSync
()).
thenThrow
(
const
FileSystemException
(
'error'
),
);
when
(
mockProcessManager
.
canRun
(
'pwsh.exe'
)).
thenReturn
(
true
);
final
OperatingSystemUtils
osUtils
=
OperatingSystemUtils
(
fileSystem:
fileSystem
,
logger:
BufferLogger
.
test
(),
...
...
@@ -131,7 +116,6 @@ void main() {
0x01
,
0x02
,
]));
when
(
mockProcessManager
.
canRun
(
'pwsh.exe'
)).
thenReturn
(
true
);
final
OperatingSystemUtils
osUtils
=
OperatingSystemUtils
(
fileSystem:
fileSystem
,
logger:
BufferLogger
.
test
(),
...
...
@@ -147,7 +131,6 @@ void main() {
final
MockFile
mockFile
=
MockFile
();
when
(
fileSystem
.
file
(
any
)).
thenReturn
(
mockFile
);
when
(
mockFile
.
readAsBytesSync
()).
thenReturn
(
Uint8List
(
0
));
when
(
mockProcessManager
.
canRun
(
'pwsh.exe'
)).
thenReturn
(
true
);
final
OperatingSystemUtils
osUtils
=
OperatingSystemUtils
(
fileSystem:
fileSystem
,
logger:
BufferLogger
.
test
(),
...
...
@@ -159,116 +142,6 @@ void main() {
});
});
testWithoutContext
(
'Windows PowerShell Expand-Archive'
,
()
async
{
final
FakeProcessManager
processManager
=
FakeProcessManager
.
list
(<
FakeCommand
>[
const
FakeCommand
(
command:
<
String
>[
'pwsh.exe'
,
'-command'
,
'"Expand-Archive a -DestinationPath b"'
,
],
),
]);
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
(
style:
FileSystemStyle
.
windows
);
final
OperatingSystemUtils
osUtils
=
OperatingSystemUtils
(
fileSystem:
fileSystem
,
logger:
BufferLogger
.
test
(),
platform:
FakePlatform
(
operatingSystem:
'windows'
),
processManager:
processManager
,
);
osUtils
.
unzip
(
fileSystem
.
file
(
'a'
),
fileSystem
.
directory
(
'b'
));
expect
(
processManager
.
hasRemainingExpectations
,
false
);
});
testWithoutContext
(
'Windows PowerShell Expand-Archive with stderr'
,
()
async
{
final
FakeProcessManager
processManager
=
FakeProcessManager
.
list
(<
FakeCommand
>[
const
FakeCommand
(
command:
<
String
>[
'pwsh.exe'
,
'-command'
,
'"Expand-Archive a -DestinationPath b"'
,
],
stderr:
kPowershellException
,
),
]);
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
(
style:
FileSystemStyle
.
windows
);
final
OperatingSystemUtils
osUtils
=
OperatingSystemUtils
(
fileSystem:
fileSystem
,
logger:
BufferLogger
.
test
(),
platform:
FakePlatform
(
operatingSystem:
'windows'
),
processManager:
processManager
,
);
expect
(()
=>
osUtils
.
unzip
(
fileSystem
.
file
(
'a'
),
fileSystem
.
directory
(
'b'
)),
throwsA
(
isA
<
ProcessException
>()));
expect
(
processManager
.
hasRemainingExpectations
,
false
);
});
testWithoutContext
(
'Windows PowerShell Compress-Archive'
,
()
{
final
FakeProcessManager
processManager
=
FakeProcessManager
.
list
(<
FakeCommand
>[
const
FakeCommand
(
command:
<
String
>[
'pwsh.exe'
,
'-command'
,
'"Compress-Archive b -DestinationPath a"'
,
],
),
]);
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
(
style:
FileSystemStyle
.
windows
);
final
OperatingSystemUtils
osUtils
=
OperatingSystemUtils
(
fileSystem:
fileSystem
,
logger:
BufferLogger
.
test
(),
platform:
FakePlatform
(
operatingSystem:
'windows'
),
processManager:
processManager
,
);
osUtils
.
zip
(
fileSystem
.
directory
(
'b'
),
fileSystem
.
file
(
'a'
));
expect
(
processManager
.
hasRemainingExpectations
,
false
);
});
testWithoutContext
(
'Windows PowerShell Compress-Archive with stderr'
,
()
{
final
FakeProcessManager
processManager
=
FakeProcessManager
.
list
(<
FakeCommand
>[
const
FakeCommand
(
command:
<
String
>[
'pwsh.exe'
,
'-command'
,
'"Compress-Archive b -DestinationPath a"'
,
],
stderr:
kPowershellException
,
),
]);
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
(
style:
FileSystemStyle
.
windows
);
final
OperatingSystemUtils
osUtils
=
OperatingSystemUtils
(
fileSystem:
fileSystem
,
logger:
BufferLogger
.
test
(),
platform:
FakePlatform
(
operatingSystem:
'windows'
),
processManager:
processManager
,
);
expect
(()
=>
osUtils
.
zip
(
fileSystem
.
directory
(
'b'
),
fileSystem
.
file
(
'a'
)),
throwsA
(
isA
<
ProcessException
>()));
expect
(
processManager
.
hasRemainingExpectations
,
false
);
});
testWithoutContext
(
'Windows PowerShell verifyZip is a no-op'
,
()
{
final
FakeProcessManager
processManager
=
FakeProcessManager
.
list
(<
FakeCommand
>[]);
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
(
style:
FileSystemStyle
.
windows
);
final
OperatingSystemUtils
osUtils
=
OperatingSystemUtils
(
fileSystem:
fileSystem
,
logger:
BufferLogger
.
test
(),
platform:
FakePlatform
(
operatingSystem:
'windows'
),
processManager:
processManager
,
);
expect
(
osUtils
.
verifyZip
(
fileSystem
.
file
(
'a'
)),
true
);
expect
(
processManager
.
hasRemainingExpectations
,
false
);
});
testWithoutContext
(
'stream compression level'
,
()
{
expect
(
OperatingSystemUtils
.
gzipLevel1
.
level
,
equals
(
1
));
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment