dependabot-composer 0.111.50 → 0.111.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (903) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dependabot/composer/file_updater/lockfile_updater.rb +6 -0
  3. data/lib/dependabot/composer/update_checker/version_resolver.rb +6 -0
  4. metadata +4 -903
  5. data/helpers/vendor/autoload.php +0 -7
  6. data/helpers/vendor/bin/composer +0 -1
  7. data/helpers/vendor/bin/jsonlint +0 -1
  8. data/helpers/vendor/bin/validate-json +0 -1
  9. data/helpers/vendor/composer/ClassLoader.php +0 -445
  10. data/helpers/vendor/composer/LICENSE +0 -21
  11. data/helpers/vendor/composer/autoload_classmap.php +0 -9
  12. data/helpers/vendor/composer/autoload_files.php +0 -11
  13. data/helpers/vendor/composer/autoload_namespaces.php +0 -9
  14. data/helpers/vendor/composer/autoload_psr4.php +0 -26
  15. data/helpers/vendor/composer/autoload_real.php +0 -70
  16. data/helpers/vendor/composer/autoload_static.php +0 -128
  17. data/helpers/vendor/composer/ca-bundle/LICENSE +0 -19
  18. data/helpers/vendor/composer/ca-bundle/README.md +0 -85
  19. data/helpers/vendor/composer/ca-bundle/composer.json +0 -54
  20. data/helpers/vendor/composer/ca-bundle/res/cacert.pem +0 -3401
  21. data/helpers/vendor/composer/ca-bundle/src/CaBundle.php +0 -308
  22. data/helpers/vendor/composer/composer/.gitattributes +0 -12
  23. data/helpers/vendor/composer/composer/.github/CONTRIBUTING.md +0 -59
  24. data/helpers/vendor/composer/composer/.github/ISSUE_TEMPLATE.md +0 -25
  25. data/helpers/vendor/composer/composer/.gitignore +0 -11
  26. data/helpers/vendor/composer/composer/.php_cs +0 -58
  27. data/helpers/vendor/composer/composer/.travis.yml +0 -76
  28. data/helpers/vendor/composer/composer/CHANGELOG.md +0 -808
  29. data/helpers/vendor/composer/composer/LICENSE +0 -19
  30. data/helpers/vendor/composer/composer/PORTING_INFO +0 -39
  31. data/helpers/vendor/composer/composer/README.md +0 -62
  32. data/helpers/vendor/composer/composer/appveyor.yml +0 -33
  33. data/helpers/vendor/composer/composer/bin/compile +0 -31
  34. data/helpers/vendor/composer/composer/bin/composer +0 -62
  35. data/helpers/vendor/composer/composer/composer.json +0 -81
  36. data/helpers/vendor/composer/composer/composer.lock +0 -1800
  37. data/helpers/vendor/composer/composer/doc/00-intro.md +0 -156
  38. data/helpers/vendor/composer/composer/doc/01-basic-usage.md +0 -266
  39. data/helpers/vendor/composer/composer/doc/02-libraries.md +0 -153
  40. data/helpers/vendor/composer/composer/doc/03-cli.md +0 -931
  41. data/helpers/vendor/composer/composer/doc/04-schema.md +0 -924
  42. data/helpers/vendor/composer/composer/doc/05-repositories.md +0 -713
  43. data/helpers/vendor/composer/composer/doc/06-config.md +0 -277
  44. data/helpers/vendor/composer/composer/doc/07-community.md +0 -35
  45. data/helpers/vendor/composer/composer/doc/articles/aliases.md +0 -105
  46. data/helpers/vendor/composer/composer/doc/articles/autoloader-optimization.md +0 -111
  47. data/helpers/vendor/composer/composer/doc/articles/custom-installers.md +0 -204
  48. data/helpers/vendor/composer/composer/doc/articles/handling-private-packages-with-satis.md +0 -343
  49. data/helpers/vendor/composer/composer/doc/articles/http-basic-authentication.md +0 -59
  50. data/helpers/vendor/composer/composer/doc/articles/plugins.md +0 -285
  51. data/helpers/vendor/composer/composer/doc/articles/scripts.md +0 -304
  52. data/helpers/vendor/composer/composer/doc/articles/troubleshooting.md +0 -309
  53. data/helpers/vendor/composer/composer/doc/articles/vendor-binaries.md +0 -110
  54. data/helpers/vendor/composer/composer/doc/articles/versions.md +0 -230
  55. data/helpers/vendor/composer/composer/doc/dev/DefaultPolicy.md +0 -55
  56. data/helpers/vendor/composer/composer/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md +0 -50
  57. data/helpers/vendor/composer/composer/doc/faqs/how-to-install-composer-programmatically.md +0 -42
  58. data/helpers/vendor/composer/composer/doc/faqs/how-to-install-untrusted-packages-safely.md +0 -19
  59. data/helpers/vendor/composer/composer/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md +0 -32
  60. data/helpers/vendor/composer/composer/doc/faqs/which-version-numbering-system-does-composer-itself-use.md +0 -4
  61. data/helpers/vendor/composer/composer/doc/faqs/why-are-unbound-version-constraints-a-bad-idea.md +0 -21
  62. data/helpers/vendor/composer/composer/doc/faqs/why-are-version-constraints-combining-comparisons-and-wildcards-a-bad-idea.md +0 -21
  63. data/helpers/vendor/composer/composer/doc/faqs/why-can't-composer-load-repositories-recursively.md +0 -35
  64. data/helpers/vendor/composer/composer/doc/fixtures/fixtures.md +0 -22
  65. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-plain/packages.json +0 -158
  66. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/bar/baz$923363b3c22e73abb2e3fd891c8156dd4d0821a97fd3e428bc910833e3e46dbe.json +0 -50
  67. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/foo/bar$4baabb3303afa3e34a4d3af18fb138e5f3b79029c1f8d9ab5b477ea15776ba0a.json +0 -77
  68. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/gar/nix$5d210670cb46c8364c8e3fb449967b9bea558b971e5b082f330ae4f1d484c321.json +0 -50
  69. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/provider-active$1893a061e579543822389ecd12d791c612db0c05e22d90e9286e233cacd86ed8.json +0 -16
  70. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/qux/quux$c142d1a07ca354be46b613f59f1d601923a5a00ccc5fcce50a77ecdd461eb72d.json +0 -22
  71. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/packages.json +0 -9
  72. data/helpers/vendor/composer/composer/phpunit.xml.dist +0 -35
  73. data/helpers/vendor/composer/composer/res/composer-repository-schema.json +0 -110
  74. data/helpers/vendor/composer/composer/res/composer-schema.json +0 -843
  75. data/helpers/vendor/composer/composer/src/Composer/Autoload/AutoloadGenerator.php +0 -1061
  76. data/helpers/vendor/composer/composer/src/Composer/Autoload/ClassLoader.php +0 -445
  77. data/helpers/vendor/composer/composer/src/Composer/Autoload/ClassMapGenerator.php +0 -222
  78. data/helpers/vendor/composer/composer/src/Composer/Cache.php +0 -251
  79. data/helpers/vendor/composer/composer/src/Composer/Command/AboutCommand.php +0 -46
  80. data/helpers/vendor/composer/composer/src/Composer/Command/ArchiveCommand.php +0 -166
  81. data/helpers/vendor/composer/composer/src/Composer/Command/BaseCommand.php +0 -181
  82. data/helpers/vendor/composer/composer/src/Composer/Command/BaseDependencyCommand.php +0 -255
  83. data/helpers/vendor/composer/composer/src/Composer/Command/CheckPlatformReqsCommand.php +0 -156
  84. data/helpers/vendor/composer/composer/src/Composer/Command/ClearCacheCommand.php +0 -74
  85. data/helpers/vendor/composer/composer/src/Composer/Command/ConfigCommand.php +0 -707
  86. data/helpers/vendor/composer/composer/src/Composer/Command/CreateProjectCommand.php +0 -385
  87. data/helpers/vendor/composer/composer/src/Composer/Command/DependsCommand.php +0 -57
  88. data/helpers/vendor/composer/composer/src/Composer/Command/DiagnoseCommand.php +0 -729
  89. data/helpers/vendor/composer/composer/src/Composer/Command/DumpAutoloadCommand.php +0 -88
  90. data/helpers/vendor/composer/composer/src/Composer/Command/ExecCommand.php +0 -97
  91. data/helpers/vendor/composer/composer/src/Composer/Command/GlobalCommand.php +0 -111
  92. data/helpers/vendor/composer/composer/src/Composer/Command/HomeCommand.php +0 -168
  93. data/helpers/vendor/composer/composer/src/Composer/Command/InitCommand.php +0 -808
  94. data/helpers/vendor/composer/composer/src/Composer/Command/InstallCommand.php +0 -124
  95. data/helpers/vendor/composer/composer/src/Composer/Command/LicensesCommand.php +0 -159
  96. data/helpers/vendor/composer/composer/src/Composer/Command/OutdatedCommand.php +0 -95
  97. data/helpers/vendor/composer/composer/src/Composer/Command/ProhibitsCommand.php +0 -57
  98. data/helpers/vendor/composer/composer/src/Composer/Command/RemoveCommand.php +0 -163
  99. data/helpers/vendor/composer/composer/src/Composer/Command/RequireCommand.php +0 -258
  100. data/helpers/vendor/composer/composer/src/Composer/Command/RunScriptCommand.php +0 -141
  101. data/helpers/vendor/composer/composer/src/Composer/Command/ScriptAliasCommand.php +0 -66
  102. data/helpers/vendor/composer/composer/src/Composer/Command/SearchCommand.php +0 -83
  103. data/helpers/vendor/composer/composer/src/Composer/Command/SelfUpdateCommand.php +0 -405
  104. data/helpers/vendor/composer/composer/src/Composer/Command/ShowCommand.php +0 -1015
  105. data/helpers/vendor/composer/composer/src/Composer/Command/StatusCommand.php +0 -214
  106. data/helpers/vendor/composer/composer/src/Composer/Command/SuggestsCommand.php +0 -152
  107. data/helpers/vendor/composer/composer/src/Composer/Command/UpdateCommand.php +0 -228
  108. data/helpers/vendor/composer/composer/src/Composer/Command/ValidateCommand.php +0 -172
  109. data/helpers/vendor/composer/composer/src/Composer/Compiler.php +0 -284
  110. data/helpers/vendor/composer/composer/src/Composer/Composer.php +0 -283
  111. data/helpers/vendor/composer/composer/src/Composer/Config.php +0 -461
  112. data/helpers/vendor/composer/composer/src/Composer/Config/ConfigSourceInterface.php +0 -91
  113. data/helpers/vendor/composer/composer/src/Composer/Config/JsonConfigSource.php +0 -267
  114. data/helpers/vendor/composer/composer/src/Composer/Console/Application.php +0 -481
  115. data/helpers/vendor/composer/composer/src/Composer/Console/HtmlOutputFormatter.php +0 -90
  116. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Decisions.php +0 -211
  117. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/DefaultPolicy.php +0 -285
  118. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/GenericRule.php +0 -91
  119. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/InstallOperation.php +0 -66
  120. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/MarkAliasInstalledOperation.php +0 -67
  121. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/MarkAliasUninstalledOperation.php +0 -67
  122. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/OperationInterface.php +0 -42
  123. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/SolverOperation.php +0 -50
  124. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/UninstallOperation.php +0 -66
  125. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/UpdateOperation.php +0 -80
  126. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/PolicyInterface.php +0 -27
  127. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Pool.php +0 -378
  128. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Problem.php +0 -253
  129. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Request.php +0 -78
  130. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Rule.php +0 -268
  131. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Rule2Literals.php +0 -113
  132. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSet.php +0 -176
  133. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetGenerator.php +0 -372
  134. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetIterator.php +0 -94
  135. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchChain.php +0 -52
  136. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchGraph.php +0 -144
  137. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchNode.php +0 -113
  138. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Solver.php +0 -874
  139. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/SolverBugException.php +0 -27
  140. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/SolverProblemsException.php +0 -88
  141. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Transaction.php +0 -244
  142. data/helpers/vendor/composer/composer/src/Composer/Downloader/ArchiveDownloader.php +0 -135
  143. data/helpers/vendor/composer/composer/src/Composer/Downloader/ChangeReportInterface.php +0 -32
  144. data/helpers/vendor/composer/composer/src/Composer/Downloader/DownloadManager.php +0 -325
  145. data/helpers/vendor/composer/composer/src/Composer/Downloader/DownloaderInterface.php +0 -64
  146. data/helpers/vendor/composer/composer/src/Composer/Downloader/DvcsDownloaderInterface.php +0 -32
  147. data/helpers/vendor/composer/composer/src/Composer/Downloader/FileDownloader.php +0 -322
  148. data/helpers/vendor/composer/composer/src/Composer/Downloader/FilesystemException.php +0 -26
  149. data/helpers/vendor/composer/composer/src/Composer/Downloader/FossilDownloader.php +0 -116
  150. data/helpers/vendor/composer/composer/src/Composer/Downloader/GitDownloader.php +0 -516
  151. data/helpers/vendor/composer/composer/src/Composer/Downloader/GzipDownloader.php +0 -84
  152. data/helpers/vendor/composer/composer/src/Composer/Downloader/HgDownloader.php +0 -100
  153. data/helpers/vendor/composer/composer/src/Composer/Downloader/PathDownloader.php +0 -202
  154. data/helpers/vendor/composer/composer/src/Composer/Downloader/PearPackageExtractor.php +0 -266
  155. data/helpers/vendor/composer/composer/src/Composer/Downloader/PerforceDownloader.php +0 -114
  156. data/helpers/vendor/composer/composer/src/Composer/Downloader/PharDownloader.php +0 -36
  157. data/helpers/vendor/composer/composer/src/Composer/Downloader/RarDownloader.php +0 -91
  158. data/helpers/vendor/composer/composer/src/Composer/Downloader/SvnDownloader.php +0 -225
  159. data/helpers/vendor/composer/composer/src/Composer/Downloader/TarDownloader.php +0 -31
  160. data/helpers/vendor/composer/composer/src/Composer/Downloader/TransportException.php +0 -53
  161. data/helpers/vendor/composer/composer/src/Composer/Downloader/VcsCapableDownloaderInterface.php +0 -32
  162. data/helpers/vendor/composer/composer/src/Composer/Downloader/VcsDownloader.php +0 -293
  163. data/helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php +0 -60
  164. data/helpers/vendor/composer/composer/src/Composer/Downloader/ZipDownloader.php +0 -230
  165. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/Event.php +0 -103
  166. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php +0 -536
  167. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/EventSubscriberInterface.php +0 -48
  168. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/ScriptExecutionException.php +0 -20
  169. data/helpers/vendor/composer/composer/src/Composer/Exception/NoSslException.php +0 -20
  170. data/helpers/vendor/composer/composer/src/Composer/Factory.php +0 -653
  171. data/helpers/vendor/composer/composer/src/Composer/IO/BaseIO.php +0 -255
  172. data/helpers/vendor/composer/composer/src/Composer/IO/BufferIO.php +0 -59
  173. data/helpers/vendor/composer/composer/src/Composer/IO/ConsoleIO.php +0 -322
  174. data/helpers/vendor/composer/composer/src/Composer/IO/IOInterface.php +0 -207
  175. data/helpers/vendor/composer/composer/src/Composer/IO/NullIO.php +0 -129
  176. data/helpers/vendor/composer/composer/src/Composer/Installer.php +0 -1798
  177. data/helpers/vendor/composer/composer/src/Composer/Installer/BinaryInstaller.php +0 -214
  178. data/helpers/vendor/composer/composer/src/Composer/Installer/BinaryPresenceInterface.php +0 -30
  179. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallationManager.php +0 -326
  180. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerEvent.php +0 -161
  181. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerEvents.php +0 -43
  182. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerInterface.php +0 -79
  183. data/helpers/vendor/composer/composer/src/Composer/Installer/LibraryInstaller.php +0 -232
  184. data/helpers/vendor/composer/composer/src/Composer/Installer/MetapackageInstaller.php +0 -100
  185. data/helpers/vendor/composer/composer/src/Composer/Installer/NoopInstaller.php +0 -88
  186. data/helpers/vendor/composer/composer/src/Composer/Installer/PackageEvent.php +0 -65
  187. data/helpers/vendor/composer/composer/src/Composer/Installer/PackageEvents.php +0 -75
  188. data/helpers/vendor/composer/composer/src/Composer/Installer/PearBinaryInstaller.php +0 -144
  189. data/helpers/vendor/composer/composer/src/Composer/Installer/PearInstaller.php +0 -84
  190. data/helpers/vendor/composer/composer/src/Composer/Installer/PluginInstaller.php +0 -84
  191. data/helpers/vendor/composer/composer/src/Composer/Installer/ProjectInstaller.php +0 -99
  192. data/helpers/vendor/composer/composer/src/Composer/Installer/SuggestedPackagesReporter.php +0 -151
  193. data/helpers/vendor/composer/composer/src/Composer/Json/JsonFile.php +0 -301
  194. data/helpers/vendor/composer/composer/src/Composer/Json/JsonFormatter.php +0 -134
  195. data/helpers/vendor/composer/composer/src/Composer/Json/JsonManipulator.php +0 -521
  196. data/helpers/vendor/composer/composer/src/Composer/Json/JsonValidationException.php +0 -34
  197. data/helpers/vendor/composer/composer/src/Composer/Package/AliasPackage.php +0 -404
  198. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchivableFilesFilter.php +0 -44
  199. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchivableFilesFinder.php +0 -105
  200. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchiveManager.php +0 -183
  201. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchiverInterface.php +0 -43
  202. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/BaseExcludeFilter.php +0 -148
  203. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ComposerExcludeFilter.php +0 -31
  204. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/GitExcludeFilter.php +0 -79
  205. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/HgExcludeFilter.php +0 -107
  206. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/PharArchiver.php +0 -97
  207. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ZipArchiver.php +0 -74
  208. data/helpers/vendor/composer/composer/src/Composer/Package/BasePackage.php +0 -251
  209. data/helpers/vendor/composer/composer/src/Composer/Package/Comparer/Comparer.php +0 -129
  210. data/helpers/vendor/composer/composer/src/Composer/Package/CompletePackage.php +0 -199
  211. data/helpers/vendor/composer/composer/src/Composer/Package/CompletePackageInterface.php +0 -95
  212. data/helpers/vendor/composer/composer/src/Composer/Package/Dumper/ArrayDumper.php +0 -151
  213. data/helpers/vendor/composer/composer/src/Composer/Package/Link.php +0 -128
  214. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/EmptyConstraint.php +0 -24
  215. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/LinkConstraintInterface.php +0 -24
  216. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/MultiConstraint.php +0 -24
  217. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/SpecificConstraint.php +0 -24
  218. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/VersionConstraint.php +0 -24
  219. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/ArrayLoader.php +0 -290
  220. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/InvalidPackageException.php +0 -46
  221. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/JsonLoader.php +0 -45
  222. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/LoaderInterface.php +0 -30
  223. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/RootPackageLoader.php +0 -264
  224. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/ValidatingArrayLoader.php +0 -493
  225. data/helpers/vendor/composer/composer/src/Composer/Package/Locker.php +0 -438
  226. data/helpers/vendor/composer/composer/src/Composer/Package/Package.php +0 -612
  227. data/helpers/vendor/composer/composer/src/Composer/Package/PackageInterface.php +0 -361
  228. data/helpers/vendor/composer/composer/src/Composer/Package/RootAliasPackage.php +0 -173
  229. data/helpers/vendor/composer/composer/src/Composer/Package/RootPackage.php +0 -136
  230. data/helpers/vendor/composer/composer/src/Composer/Package/RootPackageInterface.php +0 -142
  231. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionGuesser.php +0 -302
  232. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionParser.php +0 -81
  233. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionSelector.php +0 -176
  234. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capability/Capability.php +0 -23
  235. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capability/CommandProvider.php +0 -33
  236. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capable.php +0 -43
  237. data/helpers/vendor/composer/composer/src/Composer/Plugin/CommandEvent.php +0 -88
  238. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginEvents.php +0 -61
  239. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginInterface.php +0 -39
  240. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginManager.php +0 -403
  241. data/helpers/vendor/composer/composer/src/Composer/Plugin/PreCommandRunEvent.php +0 -68
  242. data/helpers/vendor/composer/composer/src/Composer/Plugin/PreFileDownloadEvent.php +0 -78
  243. data/helpers/vendor/composer/composer/src/Composer/Question/StrictConfirmationQuestion.php +0 -94
  244. data/helpers/vendor/composer/composer/src/Composer/Repository/ArrayRepository.php +0 -208
  245. data/helpers/vendor/composer/composer/src/Composer/Repository/ArtifactRepository.php +0 -167
  246. data/helpers/vendor/composer/composer/src/Composer/Repository/BaseRepository.php +0 -157
  247. data/helpers/vendor/composer/composer/src/Composer/Repository/ComposerRepository.php +0 -829
  248. data/helpers/vendor/composer/composer/src/Composer/Repository/CompositeRepository.php +0 -164
  249. data/helpers/vendor/composer/composer/src/Composer/Repository/ConfigurableRepositoryInterface.php +0 -23
  250. data/helpers/vendor/composer/composer/src/Composer/Repository/FilesystemRepository.php +0 -97
  251. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledArrayRepository.php +0 -24
  252. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledFilesystemRepository.php +0 -22
  253. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledRepositoryInterface.php +0 -24
  254. data/helpers/vendor/composer/composer/src/Composer/Repository/InvalidRepositoryException.php +0 -22
  255. data/helpers/vendor/composer/composer/src/Composer/Repository/PackageRepository.php +0 -61
  256. data/helpers/vendor/composer/composer/src/Composer/Repository/PathRepository.php +0 -190
  257. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/BaseChannelReader.php +0 -82
  258. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelInfo.php +0 -67
  259. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelReader.php +0 -101
  260. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelRest10Reader.php +0 -164
  261. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelRest11Reader.php +0 -139
  262. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/DependencyConstraint.php +0 -60
  263. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/DependencyInfo.php +0 -50
  264. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/PackageDependencyParser.php +0 -317
  265. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/PackageInfo.php +0 -94
  266. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ReleaseInfo.php +0 -50
  267. data/helpers/vendor/composer/composer/src/Composer/Repository/PearRepository.php +0 -198
  268. data/helpers/vendor/composer/composer/src/Composer/Repository/PlatformRepository.php +0 -342
  269. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryFactory.php +0 -169
  270. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryInterface.php +0 -74
  271. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryManager.php +0 -177
  272. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositorySecurityException.php +0 -22
  273. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/BitbucketDriver.php +0 -445
  274. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/FossilDriver.php +0 -238
  275. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitBitbucketDriver.php +0 -91
  276. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitDriver.php +0 -222
  277. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitHubDriver.php +0 -472
  278. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitLabDriver.php +0 -511
  279. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/HgBitbucketDriver.php +0 -91
  280. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/HgDriver.php +0 -230
  281. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/PerforceDriver.php +0 -181
  282. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/SvnDriver.php +0 -397
  283. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriver.php +0 -175
  284. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriverInterface.php +0 -117
  285. data/helpers/vendor/composer/composer/src/Composer/Repository/VcsRepository.php +0 -407
  286. data/helpers/vendor/composer/composer/src/Composer/Repository/VersionCacheInterface.php +0 -23
  287. data/helpers/vendor/composer/composer/src/Composer/Repository/WritableArrayRepository.php +0 -66
  288. data/helpers/vendor/composer/composer/src/Composer/Repository/WritableRepositoryInterface.php +0 -54
  289. data/helpers/vendor/composer/composer/src/Composer/Script/CommandEvent.php +0 -22
  290. data/helpers/vendor/composer/composer/src/Composer/Script/Event.php +0 -89
  291. data/helpers/vendor/composer/composer/src/Composer/Script/PackageEvent.php +0 -24
  292. data/helpers/vendor/composer/composer/src/Composer/Script/ScriptEvents.php +0 -193
  293. data/helpers/vendor/composer/composer/src/Composer/SelfUpdate/Keys.php +0 -36
  294. data/helpers/vendor/composer/composer/src/Composer/SelfUpdate/Versions.php +0 -75
  295. data/helpers/vendor/composer/composer/src/Composer/Util/AuthHelper.php +0 -63
  296. data/helpers/vendor/composer/composer/src/Composer/Util/Bitbucket.php +0 -245
  297. data/helpers/vendor/composer/composer/src/Composer/Util/ComposerMirror.php +0 -57
  298. data/helpers/vendor/composer/composer/src/Composer/Util/ConfigValidator.php +0 -191
  299. data/helpers/vendor/composer/composer/src/Composer/Util/ErrorHandler.php +0 -79
  300. data/helpers/vendor/composer/composer/src/Composer/Util/Filesystem.php +0 -715
  301. data/helpers/vendor/composer/composer/src/Composer/Util/Git.php +0 -374
  302. data/helpers/vendor/composer/composer/src/Composer/Util/GitHub.php +0 -180
  303. data/helpers/vendor/composer/composer/src/Composer/Util/GitLab.php +0 -163
  304. data/helpers/vendor/composer/composer/src/Composer/Util/Hg.php +0 -94
  305. data/helpers/vendor/composer/composer/src/Composer/Util/IniHelper.php +0 -64
  306. data/helpers/vendor/composer/composer/src/Composer/Util/NoProxyPattern.php +0 -147
  307. data/helpers/vendor/composer/composer/src/Composer/Util/Perforce.php +0 -581
  308. data/helpers/vendor/composer/composer/src/Composer/Util/Platform.php +0 -92
  309. data/helpers/vendor/composer/composer/src/Composer/Util/ProcessExecutor.php +0 -192
  310. data/helpers/vendor/composer/composer/src/Composer/Util/RemoteFilesystem.php +0 -1109
  311. data/helpers/vendor/composer/composer/src/Composer/Util/Silencer.php +0 -78
  312. data/helpers/vendor/composer/composer/src/Composer/Util/SpdxLicense.php +0 -24
  313. data/helpers/vendor/composer/composer/src/Composer/Util/StreamContextFactory.php +0 -177
  314. data/helpers/vendor/composer/composer/src/Composer/Util/Svn.php +0 -381
  315. data/helpers/vendor/composer/composer/src/Composer/Util/TlsHelper.php +0 -204
  316. data/helpers/vendor/composer/composer/src/Composer/Util/Url.php +0 -55
  317. data/helpers/vendor/composer/composer/src/Composer/XdebugHandler.php +0 -31
  318. data/helpers/vendor/composer/composer/src/bootstrap.php +0 -24
  319. data/helpers/vendor/composer/installed.json +0 -947
  320. data/helpers/vendor/composer/semver/CHANGELOG.md +0 -72
  321. data/helpers/vendor/composer/semver/LICENSE +0 -19
  322. data/helpers/vendor/composer/semver/README.md +0 -70
  323. data/helpers/vendor/composer/semver/composer.json +0 -58
  324. data/helpers/vendor/composer/semver/src/Comparator.php +0 -111
  325. data/helpers/vendor/composer/semver/src/Constraint/AbstractConstraint.php +0 -63
  326. data/helpers/vendor/composer/semver/src/Constraint/Constraint.php +0 -219
  327. data/helpers/vendor/composer/semver/src/Constraint/ConstraintInterface.php +0 -32
  328. data/helpers/vendor/composer/semver/src/Constraint/EmptyConstraint.php +0 -59
  329. data/helpers/vendor/composer/semver/src/Constraint/MultiConstraint.php +0 -120
  330. data/helpers/vendor/composer/semver/src/Semver.php +0 -127
  331. data/helpers/vendor/composer/semver/src/VersionParser.php +0 -540
  332. data/helpers/vendor/composer/spdx-licenses/.php_cs.dist +0 -59
  333. data/helpers/vendor/composer/spdx-licenses/CHANGELOG.md +0 -89
  334. data/helpers/vendor/composer/spdx-licenses/LICENSE +0 -19
  335. data/helpers/vendor/composer/spdx-licenses/README.md +0 -69
  336. data/helpers/vendor/composer/spdx-licenses/composer.json +0 -56
  337. data/helpers/vendor/composer/spdx-licenses/res/spdx-exceptions.json +0 -101
  338. data/helpers/vendor/composer/spdx-licenses/res/spdx-licenses.json +0 -1932
  339. data/helpers/vendor/composer/spdx-licenses/src/SpdxLicenses.php +0 -343
  340. data/helpers/vendor/composer/xdebug-handler/CHANGELOG.md +0 -55
  341. data/helpers/vendor/composer/xdebug-handler/LICENSE +0 -21
  342. data/helpers/vendor/composer/xdebug-handler/README.md +0 -288
  343. data/helpers/vendor/composer/xdebug-handler/composer.json +0 -40
  344. data/helpers/vendor/composer/xdebug-handler/src/PhpConfig.php +0 -73
  345. data/helpers/vendor/composer/xdebug-handler/src/Process.php +0 -160
  346. data/helpers/vendor/composer/xdebug-handler/src/Status.php +0 -163
  347. data/helpers/vendor/composer/xdebug-handler/src/XdebugHandler.php +0 -565
  348. data/helpers/vendor/justinrainbow/json-schema/.gitattributes +0 -5
  349. data/helpers/vendor/justinrainbow/json-schema/.php_cs.dist +0 -30
  350. data/helpers/vendor/justinrainbow/json-schema/LICENSE +0 -21
  351. data/helpers/vendor/justinrainbow/json-schema/README.md +0 -206
  352. data/helpers/vendor/justinrainbow/json-schema/bin/validate-json +0 -251
  353. data/helpers/vendor/justinrainbow/json-schema/composer.json +0 -76
  354. data/helpers/vendor/justinrainbow/json-schema/demo/README.md +0 -14
  355. data/helpers/vendor/justinrainbow/json-schema/demo/data.json +0 -3
  356. data/helpers/vendor/justinrainbow/json-schema/demo/demo.php +0 -18
  357. data/helpers/vendor/justinrainbow/json-schema/demo/schema.json +0 -3
  358. data/helpers/vendor/justinrainbow/json-schema/dist/schema/json-schema-draft-03.json +0 -174
  359. data/helpers/vendor/justinrainbow/json-schema/dist/schema/json-schema-draft-04.json +0 -150
  360. data/helpers/vendor/justinrainbow/json-schema/phpunit.xml.dist +0 -26
  361. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/BaseConstraint.php +0 -148
  362. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php +0 -121
  363. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Constraint.php +0 -213
  364. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/ConstraintInterface.php +0 -65
  365. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php +0 -54
  366. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php +0 -220
  367. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/FormatConstraint.php +0 -214
  368. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php +0 -81
  369. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/ObjectConstraint.php +0 -192
  370. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/SchemaConstraint.php +0 -94
  371. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/StringConstraint.php +0 -60
  372. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/LooseTypeCheck.php +0 -68
  373. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/StrictTypeCheck.php +0 -40
  374. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/TypeCheckInterface.php +0 -18
  375. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeConstraint.php +0 -261
  376. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/UndefinedConstraint.php +0 -413
  377. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Entity/JsonPointer.php +0 -161
  378. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ExceptionInterface.php +0 -7
  379. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidArgumentException.php +0 -17
  380. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidConfigException.php +0 -17
  381. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSchemaException.php +0 -17
  382. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSchemaMediaTypeException.php +0 -17
  383. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSourceUriException.php +0 -17
  384. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/JsonDecodingException.php +0 -40
  385. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ResourceNotFoundException.php +0 -17
  386. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/RuntimeException.php +0 -17
  387. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/UnresolvableJsonPointerException.php +0 -19
  388. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/UriResolverException.php +0 -17
  389. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ValidationException.php +0 -14
  390. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Iterator/ObjectIterator.php +0 -149
  391. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Rfc3339.php +0 -30
  392. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/SchemaStorage.php +0 -169
  393. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/SchemaStorageInterface.php +0 -41
  394. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/AbstractRetriever.php +0 -34
  395. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/Curl.php +0 -83
  396. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/FileGetContents.php +0 -93
  397. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/PredefinedArray.php +0 -56
  398. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/UriRetrieverInterface.php +0 -36
  399. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriResolver.php +0 -175
  400. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriRetriever.php +0 -349
  401. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/UriResolverInterface.php +0 -26
  402. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/UriRetrieverInterface.php +0 -26
  403. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Validator.php +0 -90
  404. data/helpers/vendor/psr/log/.gitignore +0 -1
  405. data/helpers/vendor/psr/log/LICENSE +0 -19
  406. data/helpers/vendor/psr/log/Psr/Log/AbstractLogger.php +0 -128
  407. data/helpers/vendor/psr/log/Psr/Log/InvalidArgumentException.php +0 -7
  408. data/helpers/vendor/psr/log/Psr/Log/LogLevel.php +0 -18
  409. data/helpers/vendor/psr/log/Psr/Log/LoggerAwareInterface.php +0 -18
  410. data/helpers/vendor/psr/log/Psr/Log/LoggerAwareTrait.php +0 -26
  411. data/helpers/vendor/psr/log/Psr/Log/LoggerInterface.php +0 -123
  412. data/helpers/vendor/psr/log/Psr/Log/LoggerTrait.php +0 -140
  413. data/helpers/vendor/psr/log/Psr/Log/NullLogger.php +0 -28
  414. data/helpers/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +0 -144
  415. data/helpers/vendor/psr/log/Psr/Log/Test/TestLogger.php +0 -146
  416. data/helpers/vendor/psr/log/README.md +0 -52
  417. data/helpers/vendor/psr/log/composer.json +0 -26
  418. data/helpers/vendor/seld/jsonlint/.gitignore +0 -3
  419. data/helpers/vendor/seld/jsonlint/.travis.yml +0 -25
  420. data/helpers/vendor/seld/jsonlint/CHANGELOG.md +0 -66
  421. data/helpers/vendor/seld/jsonlint/LICENSE +0 -19
  422. data/helpers/vendor/seld/jsonlint/README.md +0 -89
  423. data/helpers/vendor/seld/jsonlint/bin/jsonlint +0 -117
  424. data/helpers/vendor/seld/jsonlint/composer.json +0 -24
  425. data/helpers/vendor/seld/jsonlint/phpunit.xml.dist +0 -25
  426. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/DuplicateKeyException.php +0 -26
  427. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/JsonParser.php +0 -502
  428. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/Lexer.php +0 -217
  429. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/ParsingException.php +0 -28
  430. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/Undefined.php +0 -16
  431. data/helpers/vendor/seld/jsonlint/tests/JsonParserTest.php +0 -230
  432. data/helpers/vendor/seld/jsonlint/tests/bom.json +0 -6
  433. data/helpers/vendor/seld/jsonlint/tests/bootstrap.php +0 -13
  434. data/helpers/vendor/seld/phar-utils/.gitignore +0 -1
  435. data/helpers/vendor/seld/phar-utils/LICENSE +0 -19
  436. data/helpers/vendor/seld/phar-utils/README.md +0 -39
  437. data/helpers/vendor/seld/phar-utils/composer.json +0 -26
  438. data/helpers/vendor/seld/phar-utils/composer.lock +0 -19
  439. data/helpers/vendor/seld/phar-utils/src/Timestamps.php +0 -192
  440. data/helpers/vendor/symfony/console/.gitignore +0 -3
  441. data/helpers/vendor/symfony/console/Application.php +0 -1181
  442. data/helpers/vendor/symfony/console/CHANGELOG.md +0 -140
  443. data/helpers/vendor/symfony/console/Command/Command.php +0 -654
  444. data/helpers/vendor/symfony/console/Command/HelpCommand.php +0 -81
  445. data/helpers/vendor/symfony/console/Command/ListCommand.php +0 -90
  446. data/helpers/vendor/symfony/console/Command/LockableTrait.php +0 -71
  447. data/helpers/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +0 -37
  448. data/helpers/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +0 -55
  449. data/helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +0 -62
  450. data/helpers/vendor/symfony/console/ConsoleEvents.php +0 -47
  451. data/helpers/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +0 -98
  452. data/helpers/vendor/symfony/console/Descriptor/ApplicationDescription.php +0 -144
  453. data/helpers/vendor/symfony/console/Descriptor/Descriptor.php +0 -107
  454. data/helpers/vendor/symfony/console/Descriptor/DescriptorInterface.php +0 -31
  455. data/helpers/vendor/symfony/console/Descriptor/JsonDescriptor.php +0 -168
  456. data/helpers/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +0 -182
  457. data/helpers/vendor/symfony/console/Descriptor/TextDescriptor.php +0 -342
  458. data/helpers/vendor/symfony/console/Descriptor/XmlDescriptor.php +0 -245
  459. data/helpers/vendor/symfony/console/Event/ConsoleCommandEvent.php +0 -60
  460. data/helpers/vendor/symfony/console/Event/ConsoleErrorEvent.php +0 -58
  461. data/helpers/vendor/symfony/console/Event/ConsoleEvent.php +0 -67
  462. data/helpers/vendor/symfony/console/Event/ConsoleTerminateEvent.php +0 -53
  463. data/helpers/vendor/symfony/console/EventListener/ErrorListener.php +0 -91
  464. data/helpers/vendor/symfony/console/Exception/CommandNotFoundException.php +0 -43
  465. data/helpers/vendor/symfony/console/Exception/ExceptionInterface.php +0 -21
  466. data/helpers/vendor/symfony/console/Exception/InvalidArgumentException.php +0 -19
  467. data/helpers/vendor/symfony/console/Exception/InvalidOptionException.php +0 -21
  468. data/helpers/vendor/symfony/console/Exception/LogicException.php +0 -19
  469. data/helpers/vendor/symfony/console/Exception/NamespaceNotFoundException.php +0 -21
  470. data/helpers/vendor/symfony/console/Exception/RuntimeException.php +0 -19
  471. data/helpers/vendor/symfony/console/Formatter/OutputFormatter.php +0 -282
  472. data/helpers/vendor/symfony/console/Formatter/OutputFormatterInterface.php +0 -71
  473. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyle.php +0 -203
  474. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +0 -62
  475. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +0 -110
  476. data/helpers/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +0 -25
  477. data/helpers/vendor/symfony/console/Helper/DebugFormatterHelper.php +0 -127
  478. data/helpers/vendor/symfony/console/Helper/DescriptorHelper.php +0 -94
  479. data/helpers/vendor/symfony/console/Helper/FormatterHelper.php +0 -106
  480. data/helpers/vendor/symfony/console/Helper/Helper.php +0 -138
  481. data/helpers/vendor/symfony/console/Helper/HelperInterface.php +0 -39
  482. data/helpers/vendor/symfony/console/Helper/HelperSet.php +0 -108
  483. data/helpers/vendor/symfony/console/Helper/InputAwareHelper.php +0 -33
  484. data/helpers/vendor/symfony/console/Helper/ProcessHelper.php +0 -156
  485. data/helpers/vendor/symfony/console/Helper/ProgressBar.php +0 -527
  486. data/helpers/vendor/symfony/console/Helper/ProgressIndicator.php +0 -269
  487. data/helpers/vendor/symfony/console/Helper/QuestionHelper.php +0 -447
  488. data/helpers/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +0 -96
  489. data/helpers/vendor/symfony/console/Helper/Table.php +0 -813
  490. data/helpers/vendor/symfony/console/Helper/TableCell.php +0 -68
  491. data/helpers/vendor/symfony/console/Helper/TableRows.php +0 -32
  492. data/helpers/vendor/symfony/console/Helper/TableSeparator.php +0 -25
  493. data/helpers/vendor/symfony/console/Helper/TableStyle.php +0 -458
  494. data/helpers/vendor/symfony/console/Input/ArgvInput.php +0 -365
  495. data/helpers/vendor/symfony/console/Input/ArrayInput.php +0 -206
  496. data/helpers/vendor/symfony/console/Input/Input.php +0 -203
  497. data/helpers/vendor/symfony/console/Input/InputArgument.php +0 -129
  498. data/helpers/vendor/symfony/console/Input/InputAwareInterface.php +0 -26
  499. data/helpers/vendor/symfony/console/Input/InputDefinition.php +0 -404
  500. data/helpers/vendor/symfony/console/Input/InputInterface.php +0 -163
  501. data/helpers/vendor/symfony/console/Input/InputOption.php +0 -208
  502. data/helpers/vendor/symfony/console/Input/StreamableInputInterface.php +0 -37
  503. data/helpers/vendor/symfony/console/Input/StringInput.php +0 -72
  504. data/helpers/vendor/symfony/console/LICENSE +0 -19
  505. data/helpers/vendor/symfony/console/Logger/ConsoleLogger.php +0 -124
  506. data/helpers/vendor/symfony/console/Output/BufferedOutput.php +0 -45
  507. data/helpers/vendor/symfony/console/Output/ConsoleOutput.php +0 -161
  508. data/helpers/vendor/symfony/console/Output/ConsoleOutputInterface.php +0 -32
  509. data/helpers/vendor/symfony/console/Output/ConsoleSectionOutput.php +0 -141
  510. data/helpers/vendor/symfony/console/Output/NullOutput.php +0 -123
  511. data/helpers/vendor/symfony/console/Output/Output.php +0 -177
  512. data/helpers/vendor/symfony/console/Output/OutputInterface.php +0 -114
  513. data/helpers/vendor/symfony/console/Output/StreamOutput.php +0 -124
  514. data/helpers/vendor/symfony/console/Question/ChoiceQuestion.php +0 -184
  515. data/helpers/vendor/symfony/console/Question/ConfirmationQuestion.php +0 -59
  516. data/helpers/vendor/symfony/console/Question/Question.php +0 -246
  517. data/helpers/vendor/symfony/console/README.md +0 -20
  518. data/helpers/vendor/symfony/console/Resources/bin/hiddeninput.exe +0 -0
  519. data/helpers/vendor/symfony/console/Style/OutputStyle.php +0 -155
  520. data/helpers/vendor/symfony/console/Style/StyleInterface.php +0 -154
  521. data/helpers/vendor/symfony/console/Style/SymfonyStyle.php +0 -438
  522. data/helpers/vendor/symfony/console/Terminal.php +0 -137
  523. data/helpers/vendor/symfony/console/Tester/ApplicationTester.php +0 -77
  524. data/helpers/vendor/symfony/console/Tester/CommandTester.php +0 -78
  525. data/helpers/vendor/symfony/console/Tester/TesterTrait.php +0 -177
  526. data/helpers/vendor/symfony/console/Tests/ApplicationTest.php +0 -1814
  527. data/helpers/vendor/symfony/console/Tests/Command/CommandTest.php +0 -436
  528. data/helpers/vendor/symfony/console/Tests/Command/HelpCommandTest.php +0 -71
  529. data/helpers/vendor/symfony/console/Tests/Command/ListCommandTest.php +0 -113
  530. data/helpers/vendor/symfony/console/Tests/Command/LockableTraitTest.php +0 -67
  531. data/helpers/vendor/symfony/console/Tests/CommandLoader/ContainerCommandLoaderTest.php +0 -61
  532. data/helpers/vendor/symfony/console/Tests/CommandLoader/FactoryCommandLoaderTest.php +0 -60
  533. data/helpers/vendor/symfony/console/Tests/DependencyInjection/AddConsoleCommandPassTest.php +0 -258
  534. data/helpers/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php +0 -107
  535. data/helpers/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php +0 -35
  536. data/helpers/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php +0 -45
  537. data/helpers/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php +0 -82
  538. data/helpers/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php +0 -53
  539. data/helpers/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php +0 -27
  540. data/helpers/vendor/symfony/console/Tests/EventListener/ErrorListenerTest.php +0 -156
  541. data/helpers/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php +0 -11
  542. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php +0 -18
  543. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php +0 -26
  544. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php +0 -24
  545. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php +0 -27
  546. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php +0 -32
  547. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand3.php +0 -27
  548. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand4.php +0 -25
  549. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommandMbString.php +0 -32
  550. data/helpers/vendor/symfony/console/Tests/Fixtures/DummyOutput.php +0 -36
  551. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo1Command.php +0 -26
  552. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo2Command.php +0 -21
  553. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo3Command.php +0 -29
  554. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo4Command.php +0 -11
  555. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo5Command.php +0 -10
  556. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo6Command.php +0 -11
  557. data/helpers/vendor/symfony/console/Tests/Fixtures/FooCommand.php +0 -33
  558. data/helpers/vendor/symfony/console/Tests/Fixtures/FooLock2Command.php +0 -28
  559. data/helpers/vendor/symfony/console/Tests/Fixtures/FooLockCommand.php +0 -27
  560. data/helpers/vendor/symfony/console/Tests/Fixtures/FooOptCommand.php +0 -36
  561. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSameCaseLowercaseCommand.php +0 -11
  562. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSameCaseUppercaseCommand.php +0 -11
  563. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php +0 -26
  564. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php +0 -26
  565. data/helpers/vendor/symfony/console/Tests/Fixtures/FooWithoutAliasCommand.php +0 -21
  566. data/helpers/vendor/symfony/console/Tests/Fixtures/FoobarCommand.php +0 -25
  567. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php +0 -11
  568. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php +0 -13
  569. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_10.php +0 -17
  570. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_11.php +0 -12
  571. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_12.php +0 -13
  572. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_13.php +0 -14
  573. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_14.php +0 -17
  574. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_15.php +0 -14
  575. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_16.php +0 -15
  576. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_17.php +0 -13
  577. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php +0 -16
  578. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php +0 -12
  579. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php +0 -34
  580. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4_with_iterators.php +0 -34
  581. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php +0 -37
  582. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php +0 -16
  583. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php +0 -15
  584. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_8.php +0 -26
  585. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_9.php +0 -11
  586. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/interactive_command_1.php +0 -19
  587. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/interactive_output_1.txt +0 -7
  588. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt +0 -3
  589. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt +0 -9
  590. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_10.txt +0 -7
  591. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_11.txt +0 -4
  592. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_12.txt +0 -6
  593. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_13.txt +0 -7
  594. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_14.txt +0 -6
  595. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_15.txt +0 -7
  596. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_16.txt +0 -8
  597. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_17.txt +0 -7
  598. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt +0 -13
  599. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt +0 -7
  600. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt +0 -32
  601. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4_with_iterators.txt +0 -32
  602. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt +0 -18
  603. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt +0 -6
  604. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt +0 -5
  605. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_8.txt +0 -9
  606. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_9.txt +0 -5
  607. data/helpers/vendor/symfony/console/Tests/Fixtures/TestCommand.php +0 -28
  608. data/helpers/vendor/symfony/console/Tests/Fixtures/TestTiti.php +0 -21
  609. data/helpers/vendor/symfony/console/Tests/Fixtures/TestToto.php +0 -22
  610. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.json +0 -156
  611. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.md +0 -172
  612. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.txt +0 -17
  613. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.xml +0 -104
  614. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.json +0 -509
  615. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.md +0 -431
  616. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.txt +0 -21
  617. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.xml +0 -254
  618. data/helpers/vendor/symfony/console/Tests/Fixtures/application_filtered_namespace.txt +0 -16
  619. data/helpers/vendor/symfony/console/Tests/Fixtures/application_gethelp.txt +0 -1
  620. data/helpers/vendor/symfony/console/Tests/Fixtures/application_mbstring.md +0 -269
  621. data/helpers/vendor/symfony/console/Tests/Fixtures/application_mbstring.txt +0 -19
  622. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt +0 -5
  623. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt +0 -7
  624. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt +0 -18
  625. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt +0 -18
  626. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt +0 -6
  627. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt +0 -8
  628. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt +0 -8
  629. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt +0 -9
  630. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_escapeslines.txt +0 -9
  631. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_linebreaks.txt +0 -11
  632. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run1.txt +0 -17
  633. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run2.txt +0 -29
  634. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run3.txt +0 -29
  635. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run4.txt +0 -1
  636. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.json +0 -15
  637. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.md +0 -12
  638. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.txt +0 -10
  639. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.xml +0 -12
  640. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.json +0 -33
  641. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.md +0 -29
  642. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.txt +0 -16
  643. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.xml +0 -21
  644. data/helpers/vendor/symfony/console/Tests/Fixtures/command_mbstring.md +0 -29
  645. data/helpers/vendor/symfony/console/Tests/Fixtures/command_mbstring.txt +0 -16
  646. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.json +0 -7
  647. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.md +0 -5
  648. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.txt +0 -1
  649. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.xml +0 -5
  650. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.json +0 -7
  651. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.md +0 -7
  652. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.txt +0 -1
  653. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.xml +0 -5
  654. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.json +0 -7
  655. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.md +0 -7
  656. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.txt +0 -1
  657. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.xml +0 -7
  658. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.json +0 -7
  659. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.md +0 -8
  660. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.txt +0 -2
  661. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.xml +0 -6
  662. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.json +0 -7
  663. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.md +0 -7
  664. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.txt +0 -1
  665. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.xml +0 -7
  666. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.json +0 -7
  667. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.md +0 -7
  668. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.txt +0 -1
  669. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.xml +0 -7
  670. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.json +0 -4
  671. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.md +0 -0
  672. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.txt +0 -0
  673. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.xml +0 -5
  674. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.json +0 -12
  675. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.md +0 -7
  676. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.txt +0 -2
  677. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.xml +0 -10
  678. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.json +0 -14
  679. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.md +0 -8
  680. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.txt +0 -2
  681. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.xml +0 -9
  682. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.json +0 -22
  683. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.md +0 -16
  684. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.txt +0 -5
  685. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.xml +0 -14
  686. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.json +0 -9
  687. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.md +0 -6
  688. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.txt +0 -1
  689. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.xml +0 -4
  690. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.json +0 -9
  691. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.md +0 -8
  692. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.txt +0 -1
  693. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.xml +0 -7
  694. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.json +0 -9
  695. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.md +0 -8
  696. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.txt +0 -1
  697. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.xml +0 -5
  698. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.json +0 -9
  699. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.md +0 -8
  700. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.txt +0 -1
  701. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.xml +0 -5
  702. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.json +0 -9
  703. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.md +0 -9
  704. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.txt +0 -2
  705. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.xml +0 -6
  706. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.json +0 -9
  707. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.md +0 -8
  708. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.txt +0 -1
  709. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.xml +0 -5
  710. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.json +0 -9
  711. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.md +0 -8
  712. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.txt +0 -1
  713. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.xml +0 -7
  714. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.json +0 -9
  715. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.md +0 -8
  716. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.txt +0 -1
  717. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.xml +0 -7
  718. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.json +0 -12
  719. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.md +0 -8
  720. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.txt +0 -1
  721. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.xml +0 -8
  722. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php +0 -71
  723. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php +0 -100
  724. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php +0 -355
  725. data/helpers/vendor/symfony/console/Tests/Helper/AbstractQuestionHelperTest.php +0 -34
  726. data/helpers/vendor/symfony/console/Tests/Helper/FormatterHelperTest.php +0 -129
  727. data/helpers/vendor/symfony/console/Tests/Helper/HelperSetTest.php +0 -127
  728. data/helpers/vendor/symfony/console/Tests/Helper/HelperTest.php +0 -55
  729. data/helpers/vendor/symfony/console/Tests/Helper/ProcessHelperTest.php +0 -133
  730. data/helpers/vendor/symfony/console/Tests/Helper/ProgressBarTest.php +0 -912
  731. data/helpers/vendor/symfony/console/Tests/Helper/ProgressIndicatorTest.php +0 -183
  732. data/helpers/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php +0 -715
  733. data/helpers/vendor/symfony/console/Tests/Helper/SymfonyQuestionHelperTest.php +0 -168
  734. data/helpers/vendor/symfony/console/Tests/Helper/TableStyleTest.php +0 -28
  735. data/helpers/vendor/symfony/console/Tests/Helper/TableTest.php +0 -1199
  736. data/helpers/vendor/symfony/console/Tests/Input/ArgvInputTest.php +0 -466
  737. data/helpers/vendor/symfony/console/Tests/Input/ArrayInputTest.php +0 -177
  738. data/helpers/vendor/symfony/console/Tests/Input/InputArgumentTest.php +0 -103
  739. data/helpers/vendor/symfony/console/Tests/Input/InputDefinitionTest.php +0 -407
  740. data/helpers/vendor/symfony/console/Tests/Input/InputOptionTest.php +0 -196
  741. data/helpers/vendor/symfony/console/Tests/Input/InputTest.php +0 -149
  742. data/helpers/vendor/symfony/console/Tests/Input/StringInputTest.php +0 -87
  743. data/helpers/vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php +0 -215
  744. data/helpers/vendor/symfony/console/Tests/Output/ConsoleOutputTest.php +0 -42
  745. data/helpers/vendor/symfony/console/Tests/Output/ConsoleSectionOutputTest.php +0 -163
  746. data/helpers/vendor/symfony/console/Tests/Output/NullOutputTest.php +0 -88
  747. data/helpers/vendor/symfony/console/Tests/Output/OutputTest.php +0 -189
  748. data/helpers/vendor/symfony/console/Tests/Output/StreamOutputTest.php +0 -61
  749. data/helpers/vendor/symfony/console/Tests/Question/ConfirmationQuestionTest.php +0 -62
  750. data/helpers/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php +0 -118
  751. data/helpers/vendor/symfony/console/Tests/TerminalTest.php +0 -59
  752. data/helpers/vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php +0 -113
  753. data/helpers/vendor/symfony/console/Tests/Tester/CommandTesterTest.php +0 -235
  754. data/helpers/vendor/symfony/console/composer.json +0 -56
  755. data/helpers/vendor/symfony/console/phpunit.xml.dist +0 -41
  756. data/helpers/vendor/symfony/contracts/.gitignore +0 -3
  757. data/helpers/vendor/symfony/contracts/CHANGELOG.md +0 -12
  758. data/helpers/vendor/symfony/contracts/Cache/CacheInterface.php +0 -57
  759. data/helpers/vendor/symfony/contracts/Cache/CacheTrait.php +0 -71
  760. data/helpers/vendor/symfony/contracts/Cache/CallbackInterface.php +0 -30
  761. data/helpers/vendor/symfony/contracts/Cache/ItemInterface.php +0 -60
  762. data/helpers/vendor/symfony/contracts/Cache/TagAwareCacheInterface.php +0 -38
  763. data/helpers/vendor/symfony/contracts/LICENSE +0 -19
  764. data/helpers/vendor/symfony/contracts/README.md +0 -70
  765. data/helpers/vendor/symfony/contracts/Service/ResetInterface.php +0 -30
  766. data/helpers/vendor/symfony/contracts/Service/ServiceLocatorTrait.php +0 -97
  767. data/helpers/vendor/symfony/contracts/Service/ServiceSubscriberInterface.php +0 -53
  768. data/helpers/vendor/symfony/contracts/Service/ServiceSubscriberTrait.php +0 -61
  769. data/helpers/vendor/symfony/contracts/Tests/Cache/CacheTraitTest.php +0 -165
  770. data/helpers/vendor/symfony/contracts/Tests/Service/ServiceLocatorTest.php +0 -94
  771. data/helpers/vendor/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php +0 -65
  772. data/helpers/vendor/symfony/contracts/Tests/Translation/TranslatorTest.php +0 -353
  773. data/helpers/vendor/symfony/contracts/Translation/LocaleAwareInterface.php +0 -31
  774. data/helpers/vendor/symfony/contracts/Translation/TranslatorInterface.php +0 -65
  775. data/helpers/vendor/symfony/contracts/Translation/TranslatorTrait.php +0 -255
  776. data/helpers/vendor/symfony/contracts/composer.json +0 -44
  777. data/helpers/vendor/symfony/contracts/phpunit.xml.dist +0 -31
  778. data/helpers/vendor/symfony/filesystem/.gitignore +0 -3
  779. data/helpers/vendor/symfony/filesystem/CHANGELOG.md +0 -59
  780. data/helpers/vendor/symfony/filesystem/Exception/ExceptionInterface.php +0 -21
  781. data/helpers/vendor/symfony/filesystem/Exception/FileNotFoundException.php +0 -34
  782. data/helpers/vendor/symfony/filesystem/Exception/IOException.php +0 -39
  783. data/helpers/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +0 -27
  784. data/helpers/vendor/symfony/filesystem/Exception/InvalidArgumentException.php +0 -19
  785. data/helpers/vendor/symfony/filesystem/Filesystem.php +0 -767
  786. data/helpers/vendor/symfony/filesystem/LICENSE +0 -19
  787. data/helpers/vendor/symfony/filesystem/README.md +0 -13
  788. data/helpers/vendor/symfony/filesystem/Tests/ExceptionTest.php +0 -47
  789. data/helpers/vendor/symfony/filesystem/Tests/FilesystemTest.php +0 -1686
  790. data/helpers/vendor/symfony/filesystem/Tests/FilesystemTestCase.php +0 -166
  791. data/helpers/vendor/symfony/filesystem/Tests/Fixtures/MockStream/MockStream.php +0 -46
  792. data/helpers/vendor/symfony/filesystem/composer.json +0 -34
  793. data/helpers/vendor/symfony/filesystem/phpunit.xml.dist +0 -30
  794. data/helpers/vendor/symfony/finder/.gitignore +0 -3
  795. data/helpers/vendor/symfony/finder/CHANGELOG.md +0 -69
  796. data/helpers/vendor/symfony/finder/Comparator/Comparator.php +0 -98
  797. data/helpers/vendor/symfony/finder/Comparator/DateComparator.php +0 -51
  798. data/helpers/vendor/symfony/finder/Comparator/NumberComparator.php +0 -79
  799. data/helpers/vendor/symfony/finder/Exception/AccessDeniedException.php +0 -19
  800. data/helpers/vendor/symfony/finder/Finder.php +0 -783
  801. data/helpers/vendor/symfony/finder/Glob.php +0 -116
  802. data/helpers/vendor/symfony/finder/Iterator/CustomFilterIterator.php +0 -61
  803. data/helpers/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +0 -58
  804. data/helpers/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +0 -45
  805. data/helpers/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +0 -84
  806. data/helpers/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +0 -53
  807. data/helpers/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +0 -58
  808. data/helpers/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +0 -47
  809. data/helpers/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +0 -112
  810. data/helpers/vendor/symfony/finder/Iterator/PathFilterIterator.php +0 -56
  811. data/helpers/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +0 -140
  812. data/helpers/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +0 -57
  813. data/helpers/vendor/symfony/finder/Iterator/SortableIterator.php +0 -99
  814. data/helpers/vendor/symfony/finder/LICENSE +0 -19
  815. data/helpers/vendor/symfony/finder/README.md +0 -14
  816. data/helpers/vendor/symfony/finder/SplFileInfo.php +0 -78
  817. data/helpers/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php +0 -65
  818. data/helpers/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php +0 -64
  819. data/helpers/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php +0 -108
  820. data/helpers/vendor/symfony/finder/Tests/FinderTest.php +0 -1384
  821. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/a +0 -0
  822. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/b/c.neon +0 -0
  823. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/b/d.neon +0 -0
  824. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat +0 -0
  825. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat +0 -0
  826. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/a.dat +0 -0
  827. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy +0 -0
  828. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy +0 -0
  829. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy +0 -0
  830. data/helpers/vendor/symfony/finder/Tests/Fixtures/dolor.txt +0 -2
  831. data/helpers/vendor/symfony/finder/Tests/Fixtures/ipsum.txt +0 -2
  832. data/helpers/vendor/symfony/finder/Tests/Fixtures/lorem.txt +0 -2
  833. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/.dot +0 -1
  834. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/a +0 -0
  835. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon +0 -0
  836. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon +0 -0
  837. data/helpers/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat +0 -0
  838. data/helpers/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt b/data/helpers/vendor/symfony/finder/Tests/Fixtures/with → space/foo.txt +0 -0
  839. data/helpers/vendor/symfony/finder/Tests/GlobTest.php +0 -95
  840. data/helpers/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php +0 -46
  841. data/helpers/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php +0 -92
  842. data/helpers/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php +0 -103
  843. data/helpers/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php +0 -107
  844. data/helpers/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php +0 -82
  845. data/helpers/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php +0 -86
  846. data/helpers/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php +0 -54
  847. data/helpers/vendor/symfony/finder/Tests/Iterator/Iterator.php +0 -55
  848. data/helpers/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php +0 -100
  849. data/helpers/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php +0 -21
  850. data/helpers/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php +0 -132
  851. data/helpers/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php +0 -71
  852. data/helpers/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php +0 -82
  853. data/helpers/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php +0 -128
  854. data/helpers/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php +0 -59
  855. data/helpers/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php +0 -70
  856. data/helpers/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php +0 -262
  857. data/helpers/vendor/symfony/finder/composer.json +0 -33
  858. data/helpers/vendor/symfony/finder/phpunit.xml.dist +0 -30
  859. data/helpers/vendor/symfony/polyfill-ctype/Ctype.php +0 -227
  860. data/helpers/vendor/symfony/polyfill-ctype/LICENSE +0 -19
  861. data/helpers/vendor/symfony/polyfill-ctype/README.md +0 -12
  862. data/helpers/vendor/symfony/polyfill-ctype/bootstrap.php +0 -26
  863. data/helpers/vendor/symfony/polyfill-ctype/composer.json +0 -34
  864. data/helpers/vendor/symfony/polyfill-mbstring/LICENSE +0 -19
  865. data/helpers/vendor/symfony/polyfill-mbstring/Mbstring.php +0 -800
  866. data/helpers/vendor/symfony/polyfill-mbstring/README.md +0 -13
  867. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +0 -1096
  868. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +0 -5
  869. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +0 -1104
  870. data/helpers/vendor/symfony/polyfill-mbstring/bootstrap.php +0 -58
  871. data/helpers/vendor/symfony/polyfill-mbstring/composer.json +0 -34
  872. data/helpers/vendor/symfony/process/.gitignore +0 -3
  873. data/helpers/vendor/symfony/process/CHANGELOG.md +0 -90
  874. data/helpers/vendor/symfony/process/Exception/ExceptionInterface.php +0 -21
  875. data/helpers/vendor/symfony/process/Exception/InvalidArgumentException.php +0 -21
  876. data/helpers/vendor/symfony/process/Exception/LogicException.php +0 -21
  877. data/helpers/vendor/symfony/process/Exception/ProcessFailedException.php +0 -54
  878. data/helpers/vendor/symfony/process/Exception/ProcessSignaledException.php +0 -41
  879. data/helpers/vendor/symfony/process/Exception/ProcessTimedOutException.php +0 -69
  880. data/helpers/vendor/symfony/process/Exception/RuntimeException.php +0 -21
  881. data/helpers/vendor/symfony/process/ExecutableFinder.php +0 -88
  882. data/helpers/vendor/symfony/process/InputStream.php +0 -90
  883. data/helpers/vendor/symfony/process/LICENSE +0 -19
  884. data/helpers/vendor/symfony/process/PhpExecutableFinder.php +0 -101
  885. data/helpers/vendor/symfony/process/PhpProcess.php +0 -75
  886. data/helpers/vendor/symfony/process/Pipes/AbstractPipes.php +0 -178
  887. data/helpers/vendor/symfony/process/Pipes/PipesInterface.php +0 -67
  888. data/helpers/vendor/symfony/process/Pipes/UnixPipes.php +0 -153
  889. data/helpers/vendor/symfony/process/Pipes/WindowsPipes.php +0 -191
  890. data/helpers/vendor/symfony/process/Process.php +0 -1652
  891. data/helpers/vendor/symfony/process/ProcessUtils.php +0 -69
  892. data/helpers/vendor/symfony/process/README.md +0 -13
  893. data/helpers/vendor/symfony/process/Tests/ExecutableFinderTest.php +0 -178
  894. data/helpers/vendor/symfony/process/Tests/KillableProcessWithOutput.php +0 -25
  895. data/helpers/vendor/symfony/process/Tests/NonStopableProcess.php +0 -47
  896. data/helpers/vendor/symfony/process/Tests/PhpExecutableFinderTest.php +0 -49
  897. data/helpers/vendor/symfony/process/Tests/PhpProcessTest.php +0 -63
  898. data/helpers/vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php +0 -72
  899. data/helpers/vendor/symfony/process/Tests/ProcessFailedExceptionTest.php +0 -137
  900. data/helpers/vendor/symfony/process/Tests/ProcessTest.php +0 -1537
  901. data/helpers/vendor/symfony/process/Tests/SignalListener.php +0 -21
  902. data/helpers/vendor/symfony/process/composer.json +0 -33
  903. data/helpers/vendor/symfony/process/phpunit.xml.dist +0 -30
@@ -1,72 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- define('ERR_SELECT_FAILED', 1);
13
- define('ERR_TIMEOUT', 2);
14
- define('ERR_READ_FAILED', 3);
15
- define('ERR_WRITE_FAILED', 4);
16
-
17
- $read = [STDIN];
18
- $write = [STDOUT, STDERR];
19
-
20
- stream_set_blocking(STDIN, 0);
21
- stream_set_blocking(STDOUT, 0);
22
- stream_set_blocking(STDERR, 0);
23
-
24
- $out = $err = '';
25
- while ($read || $write) {
26
- $r = $read;
27
- $w = $write;
28
- $e = null;
29
- $n = stream_select($r, $w, $e, 5);
30
-
31
- if (false === $n) {
32
- die(ERR_SELECT_FAILED);
33
- } elseif ($n < 1) {
34
- die(ERR_TIMEOUT);
35
- }
36
-
37
- if (in_array(STDOUT, $w) && strlen($out) > 0) {
38
- $written = fwrite(STDOUT, (string) $out, 32768);
39
- if (false === $written) {
40
- die(ERR_WRITE_FAILED);
41
- }
42
- $out = (string) substr($out, $written);
43
- }
44
- if (null === $read && '' === $out) {
45
- $write = array_diff($write, [STDOUT]);
46
- }
47
-
48
- if (in_array(STDERR, $w) && strlen($err) > 0) {
49
- $written = fwrite(STDERR, (string) $err, 32768);
50
- if (false === $written) {
51
- die(ERR_WRITE_FAILED);
52
- }
53
- $err = (string) substr($err, $written);
54
- }
55
- if (null === $read && '' === $err) {
56
- $write = array_diff($write, [STDERR]);
57
- }
58
-
59
- if ($r) {
60
- $str = fread(STDIN, 32768);
61
- if (false !== $str) {
62
- $out .= $str;
63
- $err .= $str;
64
- }
65
- if (false === $str || feof(STDIN)) {
66
- $read = null;
67
- if (!feof(STDIN)) {
68
- die(ERR_READ_FAILED);
69
- }
70
- }
71
- }
72
- }
@@ -1,137 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Symfony\Component\Process\Tests;
13
-
14
- use PHPUnit\Framework\TestCase;
15
- use Symfony\Component\Process\Exception\ProcessFailedException;
16
-
17
- /**
18
- * @author Sebastian Marek <proofek@gmail.com>
19
- */
20
- class ProcessFailedExceptionTest extends TestCase
21
- {
22
- /**
23
- * tests ProcessFailedException throws exception if the process was successful.
24
- */
25
- public function testProcessFailedExceptionThrowsException()
26
- {
27
- $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(['isSuccessful'])->setConstructorArgs([['php']])->getMock();
28
- $process->expects($this->once())
29
- ->method('isSuccessful')
30
- ->will($this->returnValue(true));
31
-
32
- if (method_exists($this, 'expectException')) {
33
- $this->expectException(\InvalidArgumentException::class);
34
- $this->expectExceptionMessage('Expected a failed process, but the given process was successful.');
35
- } else {
36
- $this->setExpectedException(\InvalidArgumentException::class, 'Expected a failed process, but the given process was successful.');
37
- }
38
-
39
- new ProcessFailedException($process);
40
- }
41
-
42
- /**
43
- * tests ProcessFailedException uses information from process output
44
- * to generate exception message.
45
- */
46
- public function testProcessFailedExceptionPopulatesInformationFromProcessOutput()
47
- {
48
- $cmd = 'php';
49
- $exitCode = 1;
50
- $exitText = 'General error';
51
- $output = 'Command output';
52
- $errorOutput = 'FATAL: Unexpected error';
53
- $workingDirectory = getcwd();
54
-
55
- $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(['isSuccessful', 'getOutput', 'getErrorOutput', 'getExitCode', 'getExitCodeText', 'isOutputDisabled', 'getWorkingDirectory'])->setConstructorArgs([[$cmd]])->getMock();
56
- $process->expects($this->once())
57
- ->method('isSuccessful')
58
- ->will($this->returnValue(false));
59
-
60
- $process->expects($this->once())
61
- ->method('getOutput')
62
- ->will($this->returnValue($output));
63
-
64
- $process->expects($this->once())
65
- ->method('getErrorOutput')
66
- ->will($this->returnValue($errorOutput));
67
-
68
- $process->expects($this->once())
69
- ->method('getExitCode')
70
- ->will($this->returnValue($exitCode));
71
-
72
- $process->expects($this->once())
73
- ->method('getExitCodeText')
74
- ->will($this->returnValue($exitText));
75
-
76
- $process->expects($this->once())
77
- ->method('isOutputDisabled')
78
- ->will($this->returnValue(false));
79
-
80
- $process->expects($this->once())
81
- ->method('getWorkingDirectory')
82
- ->will($this->returnValue($workingDirectory));
83
-
84
- $exception = new ProcessFailedException($process);
85
-
86
- $this->assertEquals(
87
- "The command \"$cmd\" failed.\n\nExit Code: $exitCode($exitText)\n\nWorking directory: {$workingDirectory}\n\nOutput:\n================\n{$output}\n\nError Output:\n================\n{$errorOutput}",
88
- str_replace("'php'", 'php', $exception->getMessage())
89
- );
90
- }
91
-
92
- /**
93
- * Tests that ProcessFailedException does not extract information from
94
- * process output if it was previously disabled.
95
- */
96
- public function testDisabledOutputInFailedExceptionDoesNotPopulateOutput()
97
- {
98
- $cmd = 'php';
99
- $exitCode = 1;
100
- $exitText = 'General error';
101
- $workingDirectory = getcwd();
102
-
103
- $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(['isSuccessful', 'isOutputDisabled', 'getExitCode', 'getExitCodeText', 'getOutput', 'getErrorOutput', 'getWorkingDirectory'])->setConstructorArgs([[$cmd]])->getMock();
104
- $process->expects($this->once())
105
- ->method('isSuccessful')
106
- ->will($this->returnValue(false));
107
-
108
- $process->expects($this->never())
109
- ->method('getOutput');
110
-
111
- $process->expects($this->never())
112
- ->method('getErrorOutput');
113
-
114
- $process->expects($this->once())
115
- ->method('getExitCode')
116
- ->will($this->returnValue($exitCode));
117
-
118
- $process->expects($this->once())
119
- ->method('getExitCodeText')
120
- ->will($this->returnValue($exitText));
121
-
122
- $process->expects($this->once())
123
- ->method('isOutputDisabled')
124
- ->will($this->returnValue(true));
125
-
126
- $process->expects($this->once())
127
- ->method('getWorkingDirectory')
128
- ->will($this->returnValue($workingDirectory));
129
-
130
- $exception = new ProcessFailedException($process);
131
-
132
- $this->assertEquals(
133
- "The command \"$cmd\" failed.\n\nExit Code: $exitCode($exitText)\n\nWorking directory: {$workingDirectory}",
134
- str_replace("'php'", 'php', $exception->getMessage())
135
- );
136
- }
137
- }
@@ -1,1537 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Symfony\Component\Process\Tests;
13
-
14
- use PHPUnit\Framework\TestCase;
15
- use Symfony\Component\Process\Exception\LogicException;
16
- use Symfony\Component\Process\Exception\ProcessTimedOutException;
17
- use Symfony\Component\Process\Exception\RuntimeException;
18
- use Symfony\Component\Process\InputStream;
19
- use Symfony\Component\Process\PhpExecutableFinder;
20
- use Symfony\Component\Process\Pipes\PipesInterface;
21
- use Symfony\Component\Process\Process;
22
-
23
- /**
24
- * @author Robert Schönthal <seroscho@googlemail.com>
25
- */
26
- class ProcessTest extends TestCase
27
- {
28
- private static $phpBin;
29
- private static $process;
30
- private static $sigchild;
31
-
32
- public static function setUpBeforeClass()
33
- {
34
- $phpBin = new PhpExecutableFinder();
35
- self::$phpBin = getenv('SYMFONY_PROCESS_PHP_TEST_BINARY') ?: ('phpdbg' === \PHP_SAPI ? 'php' : $phpBin->find());
36
-
37
- ob_start();
38
- phpinfo(INFO_GENERAL);
39
- self::$sigchild = false !== strpos(ob_get_clean(), '--enable-sigchild');
40
- }
41
-
42
- protected function tearDown()
43
- {
44
- if (self::$process) {
45
- self::$process->stop(0);
46
- self::$process = null;
47
- }
48
- }
49
-
50
- /**
51
- * @expectedException \Symfony\Component\Process\Exception\RuntimeException
52
- * @expectedExceptionMessage The provided cwd does not exist.
53
- */
54
- public function testInvalidCwd()
55
- {
56
- try {
57
- // Check that it works fine if the CWD exists
58
- $cmd = new Process(['echo', 'test'], __DIR__);
59
- $cmd->run();
60
- } catch (\Exception $e) {
61
- $this->fail($e);
62
- }
63
-
64
- $cmd = new Process(['echo', 'test'], __DIR__.'/notfound/');
65
- $cmd->run();
66
- }
67
-
68
- public function testThatProcessDoesNotThrowWarningDuringRun()
69
- {
70
- if ('\\' === \DIRECTORY_SEPARATOR) {
71
- $this->markTestSkipped('This test is transient on Windows');
72
- }
73
- @trigger_error('Test Error', E_USER_NOTICE);
74
- $process = $this->getProcessForCode('sleep(3)');
75
- $process->run();
76
- $actualError = error_get_last();
77
- $this->assertEquals('Test Error', $actualError['message']);
78
- $this->assertEquals(E_USER_NOTICE, $actualError['type']);
79
- }
80
-
81
- /**
82
- * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
83
- */
84
- public function testNegativeTimeoutFromConstructor()
85
- {
86
- $this->getProcess('', null, null, null, -1);
87
- }
88
-
89
- /**
90
- * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
91
- */
92
- public function testNegativeTimeoutFromSetter()
93
- {
94
- $p = $this->getProcess('');
95
- $p->setTimeout(-1);
96
- }
97
-
98
- public function testFloatAndNullTimeout()
99
- {
100
- $p = $this->getProcess('');
101
-
102
- $p->setTimeout(10);
103
- $this->assertSame(10.0, $p->getTimeout());
104
-
105
- $p->setTimeout(null);
106
- $this->assertNull($p->getTimeout());
107
-
108
- $p->setTimeout(0.0);
109
- $this->assertNull($p->getTimeout());
110
- }
111
-
112
- /**
113
- * @requires extension pcntl
114
- */
115
- public function testStopWithTimeoutIsActuallyWorking()
116
- {
117
- $p = $this->getProcess([self::$phpBin, __DIR__.'/NonStopableProcess.php', 30]);
118
- $p->start();
119
-
120
- while ($p->isRunning() && false === strpos($p->getOutput(), 'received')) {
121
- usleep(1000);
122
- }
123
-
124
- if (!$p->isRunning()) {
125
- throw new \LogicException('Process is not running: '.$p->getErrorOutput());
126
- }
127
-
128
- $start = microtime(true);
129
- $p->stop(0.1);
130
-
131
- $p->wait();
132
-
133
- $this->assertLessThan(15, microtime(true) - $start);
134
- }
135
-
136
- public function testWaitUntilSpecificOutput()
137
- {
138
- if ('\\' === \DIRECTORY_SEPARATOR) {
139
- $this->markTestIncomplete('This test is too transient on Windows, help wanted to improve it');
140
- }
141
-
142
- $p = $this->getProcess([self::$phpBin, __DIR__.'/KillableProcessWithOutput.php']);
143
- $p->start();
144
-
145
- $start = microtime(true);
146
-
147
- $completeOutput = '';
148
- $result = $p->waitUntil(function ($type, $output) use (&$completeOutput) {
149
- return false !== strpos($completeOutput .= $output, 'One more');
150
- });
151
- $this->assertTrue($result);
152
- $this->assertLessThan(20, microtime(true) - $start);
153
- $this->assertStringStartsWith("First iteration output\nSecond iteration output\nOne more", $completeOutput);
154
- $p->stop();
155
- }
156
-
157
- public function testWaitUntilCanReturnFalse()
158
- {
159
- $p = $this->getProcess('echo foo');
160
- $p->start();
161
- $this->assertFalse($p->waitUntil(function () { return false; }));
162
- }
163
-
164
- public function testAllOutputIsActuallyReadOnTermination()
165
- {
166
- // this code will result in a maximum of 2 reads of 8192 bytes by calling
167
- // start() and isRunning(). by the time getOutput() is called the process
168
- // has terminated so the internal pipes array is already empty. normally
169
- // the call to start() will not read any data as the process will not have
170
- // generated output, but this is non-deterministic so we must count it as
171
- // a possibility. therefore we need 2 * PipesInterface::CHUNK_SIZE plus
172
- // another byte which will never be read.
173
- $expectedOutputSize = PipesInterface::CHUNK_SIZE * 2 + 2;
174
-
175
- $code = sprintf('echo str_repeat(\'*\', %d);', $expectedOutputSize);
176
- $p = $this->getProcessForCode($code);
177
-
178
- $p->start();
179
-
180
- // Don't call Process::run nor Process::wait to avoid any read of pipes
181
- $h = new \ReflectionProperty($p, 'process');
182
- $h->setAccessible(true);
183
- $h = $h->getValue($p);
184
- $s = @proc_get_status($h);
185
-
186
- while (!empty($s['running'])) {
187
- usleep(1000);
188
- $s = proc_get_status($h);
189
- }
190
-
191
- $o = $p->getOutput();
192
-
193
- $this->assertEquals($expectedOutputSize, \strlen($o));
194
- }
195
-
196
- public function testCallbacksAreExecutedWithStart()
197
- {
198
- $process = $this->getProcess('echo foo');
199
- $process->start(function ($type, $buffer) use (&$data) {
200
- $data .= $buffer;
201
- });
202
-
203
- $process->wait();
204
-
205
- $this->assertSame('foo'.PHP_EOL, $data);
206
- }
207
-
208
- /**
209
- * tests results from sub processes.
210
- *
211
- * @dataProvider responsesCodeProvider
212
- */
213
- public function testProcessResponses($expected, $getter, $code)
214
- {
215
- $p = $this->getProcessForCode($code);
216
- $p->run();
217
-
218
- $this->assertSame($expected, $p->$getter());
219
- }
220
-
221
- /**
222
- * tests results from sub processes.
223
- *
224
- * @dataProvider pipesCodeProvider
225
- */
226
- public function testProcessPipes($code, $size)
227
- {
228
- $expected = str_repeat(str_repeat('*', 1024), $size).'!';
229
- $expectedLength = (1024 * $size) + 1;
230
-
231
- $p = $this->getProcessForCode($code);
232
- $p->setInput($expected);
233
- $p->run();
234
-
235
- $this->assertEquals($expectedLength, \strlen($p->getOutput()));
236
- $this->assertEquals($expectedLength, \strlen($p->getErrorOutput()));
237
- }
238
-
239
- /**
240
- * @dataProvider pipesCodeProvider
241
- */
242
- public function testSetStreamAsInput($code, $size)
243
- {
244
- $expected = str_repeat(str_repeat('*', 1024), $size).'!';
245
- $expectedLength = (1024 * $size) + 1;
246
-
247
- $stream = fopen('php://temporary', 'w+');
248
- fwrite($stream, $expected);
249
- rewind($stream);
250
-
251
- $p = $this->getProcessForCode($code);
252
- $p->setInput($stream);
253
- $p->run();
254
-
255
- fclose($stream);
256
-
257
- $this->assertEquals($expectedLength, \strlen($p->getOutput()));
258
- $this->assertEquals($expectedLength, \strlen($p->getErrorOutput()));
259
- }
260
-
261
- public function testLiveStreamAsInput()
262
- {
263
- $stream = fopen('php://memory', 'r+');
264
- fwrite($stream, 'hello');
265
- rewind($stream);
266
-
267
- $p = $this->getProcessForCode('stream_copy_to_stream(STDIN, STDOUT);');
268
- $p->setInput($stream);
269
- $p->start(function ($type, $data) use ($stream) {
270
- if ('hello' === $data) {
271
- fclose($stream);
272
- }
273
- });
274
- $p->wait();
275
-
276
- $this->assertSame('hello', $p->getOutput());
277
- }
278
-
279
- /**
280
- * @expectedException \Symfony\Component\Process\Exception\LogicException
281
- * @expectedExceptionMessage Input can not be set while the process is running.
282
- */
283
- public function testSetInputWhileRunningThrowsAnException()
284
- {
285
- $process = $this->getProcessForCode('sleep(30);');
286
- $process->start();
287
- try {
288
- $process->setInput('foobar');
289
- $process->stop();
290
- $this->fail('A LogicException should have been raised.');
291
- } catch (LogicException $e) {
292
- }
293
- $process->stop();
294
-
295
- throw $e;
296
- }
297
-
298
- /**
299
- * @dataProvider provideInvalidInputValues
300
- * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
301
- * @expectedExceptionMessage Symfony\Component\Process\Process::setInput only accepts strings, Traversable objects or stream resources.
302
- */
303
- public function testInvalidInput($value)
304
- {
305
- $process = $this->getProcess('foo');
306
- $process->setInput($value);
307
- }
308
-
309
- public function provideInvalidInputValues()
310
- {
311
- return [
312
- [[]],
313
- [new NonStringifiable()],
314
- ];
315
- }
316
-
317
- /**
318
- * @dataProvider provideInputValues
319
- */
320
- public function testValidInput($expected, $value)
321
- {
322
- $process = $this->getProcess('foo');
323
- $process->setInput($value);
324
- $this->assertSame($expected, $process->getInput());
325
- }
326
-
327
- public function provideInputValues()
328
- {
329
- return [
330
- [null, null],
331
- ['24.5', 24.5],
332
- ['input data', 'input data'],
333
- ];
334
- }
335
-
336
- public function chainedCommandsOutputProvider()
337
- {
338
- if ('\\' === \DIRECTORY_SEPARATOR) {
339
- return [
340
- ["2 \r\n2\r\n", '&&', '2'],
341
- ];
342
- }
343
-
344
- return [
345
- ["1\n1\n", ';', '1'],
346
- ["2\n2\n", '&&', '2'],
347
- ];
348
- }
349
-
350
- /**
351
- * @dataProvider chainedCommandsOutputProvider
352
- */
353
- public function testChainedCommandsOutput($expected, $operator, $input)
354
- {
355
- $process = $this->getProcess(sprintf('echo %s %s echo %s', $input, $operator, $input));
356
- $process->run();
357
- $this->assertEquals($expected, $process->getOutput());
358
- }
359
-
360
- public function testCallbackIsExecutedForOutput()
361
- {
362
- $p = $this->getProcessForCode('echo \'foo\';');
363
-
364
- $called = false;
365
- $p->run(function ($type, $buffer) use (&$called) {
366
- $called = 'foo' === $buffer;
367
- });
368
-
369
- $this->assertTrue($called, 'The callback should be executed with the output');
370
- }
371
-
372
- public function testCallbackIsExecutedForOutputWheneverOutputIsDisabled()
373
- {
374
- $p = $this->getProcessForCode('echo \'foo\';');
375
- $p->disableOutput();
376
-
377
- $called = false;
378
- $p->run(function ($type, $buffer) use (&$called) {
379
- $called = 'foo' === $buffer;
380
- });
381
-
382
- $this->assertTrue($called, 'The callback should be executed with the output');
383
- }
384
-
385
- public function testGetErrorOutput()
386
- {
387
- $p = $this->getProcessForCode('$n = 0; while ($n < 3) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; }');
388
-
389
- $p->run();
390
- $this->assertEquals(3, preg_match_all('/ERROR/', $p->getErrorOutput(), $matches));
391
- }
392
-
393
- public function testFlushErrorOutput()
394
- {
395
- $p = $this->getProcessForCode('$n = 0; while ($n < 3) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; }');
396
-
397
- $p->run();
398
- $p->clearErrorOutput();
399
- $this->assertEmpty($p->getErrorOutput());
400
- }
401
-
402
- /**
403
- * @dataProvider provideIncrementalOutput
404
- */
405
- public function testIncrementalOutput($getOutput, $getIncrementalOutput, $uri)
406
- {
407
- $lock = tempnam(sys_get_temp_dir(), __FUNCTION__);
408
-
409
- $p = $this->getProcessForCode('file_put_contents($s = \''.$uri.'\', \'foo\'); flock(fopen('.var_export($lock, true).', \'r\'), LOCK_EX); file_put_contents($s, \'bar\');');
410
-
411
- $h = fopen($lock, 'w');
412
- flock($h, LOCK_EX);
413
-
414
- $p->start();
415
-
416
- foreach (['foo', 'bar'] as $s) {
417
- while (false === strpos($p->$getOutput(), $s)) {
418
- usleep(1000);
419
- }
420
-
421
- $this->assertSame($s, $p->$getIncrementalOutput());
422
- $this->assertSame('', $p->$getIncrementalOutput());
423
-
424
- flock($h, LOCK_UN);
425
- }
426
-
427
- fclose($h);
428
- }
429
-
430
- public function provideIncrementalOutput()
431
- {
432
- return [
433
- ['getOutput', 'getIncrementalOutput', 'php://stdout'],
434
- ['getErrorOutput', 'getIncrementalErrorOutput', 'php://stderr'],
435
- ];
436
- }
437
-
438
- public function testGetOutput()
439
- {
440
- $p = $this->getProcessForCode('$n = 0; while ($n < 3) { echo \' foo \'; $n++; }');
441
-
442
- $p->run();
443
- $this->assertEquals(3, preg_match_all('/foo/', $p->getOutput(), $matches));
444
- }
445
-
446
- public function testFlushOutput()
447
- {
448
- $p = $this->getProcessForCode('$n=0;while ($n<3) {echo \' foo \';$n++;}');
449
-
450
- $p->run();
451
- $p->clearOutput();
452
- $this->assertEmpty($p->getOutput());
453
- }
454
-
455
- public function testZeroAsOutput()
456
- {
457
- if ('\\' === \DIRECTORY_SEPARATOR) {
458
- // see http://stackoverflow.com/questions/7105433/windows-batch-echo-without-new-line
459
- $p = $this->getProcess('echo | set /p dummyName=0');
460
- } else {
461
- $p = $this->getProcess('printf 0');
462
- }
463
-
464
- $p->run();
465
- $this->assertSame('0', $p->getOutput());
466
- }
467
-
468
- public function testExitCodeCommandFailed()
469
- {
470
- if ('\\' === \DIRECTORY_SEPARATOR) {
471
- $this->markTestSkipped('Windows does not support POSIX exit code');
472
- }
473
-
474
- // such command run in bash return an exitcode 127
475
- $process = $this->getProcess('nonexistingcommandIhopeneversomeonewouldnameacommandlikethis');
476
- $process->run();
477
-
478
- $this->assertGreaterThan(0, $process->getExitCode());
479
- }
480
-
481
- public function testTTYCommand()
482
- {
483
- if ('\\' === \DIRECTORY_SEPARATOR) {
484
- $this->markTestSkipped('Windows does not have /dev/tty support');
485
- }
486
-
487
- $process = $this->getProcess('echo "foo" >> /dev/null && '.$this->getProcessForCode('usleep(100000);')->getCommandLine());
488
- $process->setTty(true);
489
- $process->start();
490
- $this->assertTrue($process->isRunning());
491
- $process->wait();
492
-
493
- $this->assertSame(Process::STATUS_TERMINATED, $process->getStatus());
494
- }
495
-
496
- public function testTTYCommandExitCode()
497
- {
498
- if ('\\' === \DIRECTORY_SEPARATOR) {
499
- $this->markTestSkipped('Windows does have /dev/tty support');
500
- }
501
-
502
- $process = $this->getProcess('echo "foo" >> /dev/null');
503
- $process->setTty(true);
504
- $process->run();
505
-
506
- $this->assertTrue($process->isSuccessful());
507
- }
508
-
509
- /**
510
- * @expectedException \Symfony\Component\Process\Exception\RuntimeException
511
- * @expectedExceptionMessage TTY mode is not supported on Windows platform.
512
- */
513
- public function testTTYInWindowsEnvironment()
514
- {
515
- if ('\\' !== \DIRECTORY_SEPARATOR) {
516
- $this->markTestSkipped('This test is for Windows platform only');
517
- }
518
-
519
- $process = $this->getProcess('echo "foo" >> /dev/null');
520
- $process->setTty(false);
521
- $process->setTty(true);
522
- }
523
-
524
- public function testExitCodeTextIsNullWhenExitCodeIsNull()
525
- {
526
- $process = $this->getProcess('');
527
- $this->assertNull($process->getExitCodeText());
528
- }
529
-
530
- public function testPTYCommand()
531
- {
532
- if (!Process::isPtySupported()) {
533
- $this->markTestSkipped('PTY is not supported on this operating system.');
534
- }
535
-
536
- $process = $this->getProcess('echo "foo"');
537
- $process->setPty(true);
538
- $process->run();
539
-
540
- $this->assertSame(Process::STATUS_TERMINATED, $process->getStatus());
541
- $this->assertEquals("foo\r\n", $process->getOutput());
542
- }
543
-
544
- public function testMustRun()
545
- {
546
- $process = $this->getProcess('echo foo');
547
-
548
- $this->assertSame($process, $process->mustRun());
549
- $this->assertEquals('foo'.PHP_EOL, $process->getOutput());
550
- }
551
-
552
- public function testSuccessfulMustRunHasCorrectExitCode()
553
- {
554
- $process = $this->getProcess('echo foo')->mustRun();
555
- $this->assertEquals(0, $process->getExitCode());
556
- }
557
-
558
- /**
559
- * @expectedException \Symfony\Component\Process\Exception\ProcessFailedException
560
- */
561
- public function testMustRunThrowsException()
562
- {
563
- $process = $this->getProcess('exit 1');
564
- $process->mustRun();
565
- }
566
-
567
- public function testExitCodeText()
568
- {
569
- $process = $this->getProcess('');
570
- $r = new \ReflectionObject($process);
571
- $p = $r->getProperty('exitcode');
572
- $p->setAccessible(true);
573
-
574
- $p->setValue($process, 2);
575
- $this->assertEquals('Misuse of shell builtins', $process->getExitCodeText());
576
- }
577
-
578
- public function testStartIsNonBlocking()
579
- {
580
- $process = $this->getProcessForCode('usleep(500000);');
581
- $start = microtime(true);
582
- $process->start();
583
- $end = microtime(true);
584
- $this->assertLessThan(0.4, $end - $start);
585
- $process->stop();
586
- }
587
-
588
- public function testUpdateStatus()
589
- {
590
- $process = $this->getProcess('echo foo');
591
- $process->run();
592
- $this->assertGreaterThan(0, \strlen($process->getOutput()));
593
- }
594
-
595
- public function testGetExitCodeIsNullOnStart()
596
- {
597
- $process = $this->getProcessForCode('usleep(100000);');
598
- $this->assertNull($process->getExitCode());
599
- $process->start();
600
- $this->assertNull($process->getExitCode());
601
- $process->wait();
602
- $this->assertEquals(0, $process->getExitCode());
603
- }
604
-
605
- public function testGetExitCodeIsNullOnWhenStartingAgain()
606
- {
607
- $process = $this->getProcessForCode('usleep(100000);');
608
- $process->run();
609
- $this->assertEquals(0, $process->getExitCode());
610
- $process->start();
611
- $this->assertNull($process->getExitCode());
612
- $process->wait();
613
- $this->assertEquals(0, $process->getExitCode());
614
- }
615
-
616
- public function testGetExitCode()
617
- {
618
- $process = $this->getProcess('echo foo');
619
- $process->run();
620
- $this->assertSame(0, $process->getExitCode());
621
- }
622
-
623
- public function testStatus()
624
- {
625
- $process = $this->getProcessForCode('usleep(100000);');
626
- $this->assertFalse($process->isRunning());
627
- $this->assertFalse($process->isStarted());
628
- $this->assertFalse($process->isTerminated());
629
- $this->assertSame(Process::STATUS_READY, $process->getStatus());
630
- $process->start();
631
- $this->assertTrue($process->isRunning());
632
- $this->assertTrue($process->isStarted());
633
- $this->assertFalse($process->isTerminated());
634
- $this->assertSame(Process::STATUS_STARTED, $process->getStatus());
635
- $process->wait();
636
- $this->assertFalse($process->isRunning());
637
- $this->assertTrue($process->isStarted());
638
- $this->assertTrue($process->isTerminated());
639
- $this->assertSame(Process::STATUS_TERMINATED, $process->getStatus());
640
- }
641
-
642
- public function testStop()
643
- {
644
- $process = $this->getProcessForCode('sleep(31);');
645
- $process->start();
646
- $this->assertTrue($process->isRunning());
647
- $process->stop();
648
- $this->assertFalse($process->isRunning());
649
- }
650
-
651
- public function testIsSuccessful()
652
- {
653
- $process = $this->getProcess('echo foo');
654
- $process->run();
655
- $this->assertTrue($process->isSuccessful());
656
- }
657
-
658
- public function testIsSuccessfulOnlyAfterTerminated()
659
- {
660
- $process = $this->getProcessForCode('usleep(100000);');
661
- $process->start();
662
-
663
- $this->assertFalse($process->isSuccessful());
664
-
665
- $process->wait();
666
-
667
- $this->assertTrue($process->isSuccessful());
668
- }
669
-
670
- public function testIsNotSuccessful()
671
- {
672
- $process = $this->getProcessForCode('throw new \Exception(\'BOUM\');');
673
- $process->run();
674
- $this->assertFalse($process->isSuccessful());
675
- }
676
-
677
- public function testProcessIsNotSignaled()
678
- {
679
- if ('\\' === \DIRECTORY_SEPARATOR) {
680
- $this->markTestSkipped('Windows does not support POSIX signals');
681
- }
682
-
683
- $process = $this->getProcess('echo foo');
684
- $process->run();
685
- $this->assertFalse($process->hasBeenSignaled());
686
- }
687
-
688
- public function testProcessWithoutTermSignal()
689
- {
690
- if ('\\' === \DIRECTORY_SEPARATOR) {
691
- $this->markTestSkipped('Windows does not support POSIX signals');
692
- }
693
-
694
- $process = $this->getProcess('echo foo');
695
- $process->run();
696
- $this->assertEquals(0, $process->getTermSignal());
697
- }
698
-
699
- public function testProcessIsSignaledIfStopped()
700
- {
701
- if ('\\' === \DIRECTORY_SEPARATOR) {
702
- $this->markTestSkipped('Windows does not support POSIX signals');
703
- }
704
-
705
- $process = $this->getProcessForCode('sleep(32);');
706
- $process->start();
707
- $process->stop();
708
- $this->assertTrue($process->hasBeenSignaled());
709
- $this->assertEquals(15, $process->getTermSignal()); // SIGTERM
710
- }
711
-
712
- /**
713
- * @expectedException \Symfony\Component\Process\Exception\ProcessSignaledException
714
- * @expectedExceptionMessage The process has been signaled with signal "9".
715
- */
716
- public function testProcessThrowsExceptionWhenExternallySignaled()
717
- {
718
- if (!\function_exists('posix_kill')) {
719
- $this->markTestSkipped('Function posix_kill is required.');
720
- }
721
-
722
- if (self::$sigchild) {
723
- $this->markTestSkipped('PHP is compiled with --enable-sigchild.');
724
- }
725
-
726
- $process = $this->getProcessForCode('sleep(32.1);');
727
- $process->start();
728
- posix_kill($process->getPid(), 9); // SIGKILL
729
-
730
- $process->wait();
731
- }
732
-
733
- public function testRestart()
734
- {
735
- $process1 = $this->getProcessForCode('echo getmypid();');
736
- $process1->run();
737
- $process2 = $process1->restart();
738
-
739
- $process2->wait(); // wait for output
740
-
741
- // Ensure that both processed finished and the output is numeric
742
- $this->assertFalse($process1->isRunning());
743
- $this->assertFalse($process2->isRunning());
744
- $this->assertInternalType('numeric', $process1->getOutput());
745
- $this->assertInternalType('numeric', $process2->getOutput());
746
-
747
- // Ensure that restart returned a new process by check that the output is different
748
- $this->assertNotEquals($process1->getOutput(), $process2->getOutput());
749
- }
750
-
751
- /**
752
- * @expectedException \Symfony\Component\Process\Exception\ProcessTimedOutException
753
- * @expectedExceptionMessage exceeded the timeout of 0.1 seconds.
754
- */
755
- public function testRunProcessWithTimeout()
756
- {
757
- $process = $this->getProcessForCode('sleep(30);');
758
- $process->setTimeout(0.1);
759
- $start = microtime(true);
760
- try {
761
- $process->run();
762
- $this->fail('A RuntimeException should have been raised');
763
- } catch (RuntimeException $e) {
764
- }
765
-
766
- $this->assertLessThan(15, microtime(true) - $start);
767
-
768
- throw $e;
769
- }
770
-
771
- /**
772
- * @expectedException \Symfony\Component\Process\Exception\ProcessTimedOutException
773
- * @expectedExceptionMessage exceeded the timeout of 0.1 seconds.
774
- */
775
- public function testIterateOverProcessWithTimeout()
776
- {
777
- $process = $this->getProcessForCode('sleep(30);');
778
- $process->setTimeout(0.1);
779
- $start = microtime(true);
780
- try {
781
- $process->start();
782
- foreach ($process as $buffer);
783
- $this->fail('A RuntimeException should have been raised');
784
- } catch (RuntimeException $e) {
785
- }
786
-
787
- $this->assertLessThan(15, microtime(true) - $start);
788
-
789
- throw $e;
790
- }
791
-
792
- public function testCheckTimeoutOnNonStartedProcess()
793
- {
794
- $process = $this->getProcess('echo foo');
795
- $this->assertNull($process->checkTimeout());
796
- }
797
-
798
- public function testCheckTimeoutOnTerminatedProcess()
799
- {
800
- $process = $this->getProcess('echo foo');
801
- $process->run();
802
- $this->assertNull($process->checkTimeout());
803
- }
804
-
805
- /**
806
- * @expectedException \Symfony\Component\Process\Exception\ProcessTimedOutException
807
- * @expectedExceptionMessage exceeded the timeout of 0.1 seconds.
808
- */
809
- public function testCheckTimeoutOnStartedProcess()
810
- {
811
- $process = $this->getProcessForCode('sleep(33);');
812
- $process->setTimeout(0.1);
813
-
814
- $process->start();
815
- $start = microtime(true);
816
-
817
- try {
818
- while ($process->isRunning()) {
819
- $process->checkTimeout();
820
- usleep(100000);
821
- }
822
- $this->fail('A ProcessTimedOutException should have been raised');
823
- } catch (ProcessTimedOutException $e) {
824
- }
825
-
826
- $this->assertLessThan(15, microtime(true) - $start);
827
-
828
- throw $e;
829
- }
830
-
831
- public function testIdleTimeout()
832
- {
833
- $process = $this->getProcessForCode('sleep(34);');
834
- $process->setTimeout(60);
835
- $process->setIdleTimeout(0.1);
836
-
837
- try {
838
- $process->run();
839
-
840
- $this->fail('A timeout exception was expected.');
841
- } catch (ProcessTimedOutException $e) {
842
- $this->assertTrue($e->isIdleTimeout());
843
- $this->assertFalse($e->isGeneralTimeout());
844
- $this->assertEquals(0.1, $e->getExceededTimeout());
845
- }
846
- }
847
-
848
- public function testIdleTimeoutNotExceededWhenOutputIsSent()
849
- {
850
- $process = $this->getProcessForCode('while (true) {echo \'foo \'; usleep(1000);}');
851
- $process->setTimeout(1);
852
- $process->start();
853
-
854
- while (false === strpos($process->getOutput(), 'foo')) {
855
- usleep(1000);
856
- }
857
-
858
- $process->setIdleTimeout(0.5);
859
-
860
- try {
861
- $process->wait();
862
- $this->fail('A timeout exception was expected.');
863
- } catch (ProcessTimedOutException $e) {
864
- $this->assertTrue($e->isGeneralTimeout(), 'A general timeout is expected.');
865
- $this->assertFalse($e->isIdleTimeout(), 'No idle timeout is expected.');
866
- $this->assertEquals(1, $e->getExceededTimeout());
867
- }
868
- }
869
-
870
- /**
871
- * @expectedException \Symfony\Component\Process\Exception\ProcessTimedOutException
872
- * @expectedExceptionMessage exceeded the timeout of 0.1 seconds.
873
- */
874
- public function testStartAfterATimeout()
875
- {
876
- $process = $this->getProcessForCode('sleep(35);');
877
- $process->setTimeout(0.1);
878
-
879
- try {
880
- $process->run();
881
- $this->fail('A ProcessTimedOutException should have been raised.');
882
- } catch (ProcessTimedOutException $e) {
883
- }
884
- $this->assertFalse($process->isRunning());
885
- $process->start();
886
- $this->assertTrue($process->isRunning());
887
- $process->stop(0);
888
-
889
- throw $e;
890
- }
891
-
892
- public function testGetPid()
893
- {
894
- $process = $this->getProcessForCode('sleep(36);');
895
- $process->start();
896
- $this->assertGreaterThan(0, $process->getPid());
897
- $process->stop(0);
898
- }
899
-
900
- public function testGetPidIsNullBeforeStart()
901
- {
902
- $process = $this->getProcess('foo');
903
- $this->assertNull($process->getPid());
904
- }
905
-
906
- public function testGetPidIsNullAfterRun()
907
- {
908
- $process = $this->getProcess('echo foo');
909
- $process->run();
910
- $this->assertNull($process->getPid());
911
- }
912
-
913
- /**
914
- * @requires extension pcntl
915
- */
916
- public function testSignal()
917
- {
918
- $process = $this->getProcess([self::$phpBin, __DIR__.'/SignalListener.php']);
919
- $process->start();
920
-
921
- while (false === strpos($process->getOutput(), 'Caught')) {
922
- usleep(1000);
923
- }
924
- $process->signal(SIGUSR1);
925
- $process->wait();
926
-
927
- $this->assertEquals('Caught SIGUSR1', $process->getOutput());
928
- }
929
-
930
- /**
931
- * @requires extension pcntl
932
- */
933
- public function testExitCodeIsAvailableAfterSignal()
934
- {
935
- $process = $this->getProcess('sleep 4');
936
- $process->start();
937
- $process->signal(SIGKILL);
938
-
939
- while ($process->isRunning()) {
940
- usleep(10000);
941
- }
942
-
943
- $this->assertFalse($process->isRunning());
944
- $this->assertTrue($process->hasBeenSignaled());
945
- $this->assertFalse($process->isSuccessful());
946
- $this->assertEquals(137, $process->getExitCode());
947
- }
948
-
949
- /**
950
- * @expectedException \Symfony\Component\Process\Exception\LogicException
951
- * @expectedExceptionMessage Can not send signal on a non running process.
952
- */
953
- public function testSignalProcessNotRunning()
954
- {
955
- $process = $this->getProcess('foo');
956
- $process->signal(1); // SIGHUP
957
- }
958
-
959
- /**
960
- * @dataProvider provideMethodsThatNeedARunningProcess
961
- */
962
- public function testMethodsThatNeedARunningProcess($method)
963
- {
964
- $process = $this->getProcess('foo');
965
-
966
- if (method_exists($this, 'expectException')) {
967
- $this->expectException('Symfony\Component\Process\Exception\LogicException');
968
- $this->expectExceptionMessage(sprintf('Process must be started before calling %s.', $method));
969
- } else {
970
- $this->setExpectedException('Symfony\Component\Process\Exception\LogicException', sprintf('Process must be started before calling %s.', $method));
971
- }
972
-
973
- $process->{$method}();
974
- }
975
-
976
- public function provideMethodsThatNeedARunningProcess()
977
- {
978
- return [
979
- ['getOutput'],
980
- ['getIncrementalOutput'],
981
- ['getErrorOutput'],
982
- ['getIncrementalErrorOutput'],
983
- ['wait'],
984
- ];
985
- }
986
-
987
- /**
988
- * @dataProvider provideMethodsThatNeedATerminatedProcess
989
- * @expectedException \Symfony\Component\Process\Exception\LogicException
990
- * @expectedExceptionMessage Process must be terminated before calling
991
- */
992
- public function testMethodsThatNeedATerminatedProcess($method)
993
- {
994
- $process = $this->getProcessForCode('sleep(37);');
995
- $process->start();
996
- try {
997
- $process->{$method}();
998
- $process->stop(0);
999
- $this->fail('A LogicException must have been thrown');
1000
- } catch (\Exception $e) {
1001
- }
1002
- $process->stop(0);
1003
-
1004
- throw $e;
1005
- }
1006
-
1007
- public function provideMethodsThatNeedATerminatedProcess()
1008
- {
1009
- return [
1010
- ['hasBeenSignaled'],
1011
- ['getTermSignal'],
1012
- ['hasBeenStopped'],
1013
- ['getStopSignal'],
1014
- ];
1015
- }
1016
-
1017
- /**
1018
- * @expectedException \Symfony\Component\Process\Exception\RuntimeException
1019
- */
1020
- public function testWrongSignal()
1021
- {
1022
- if ('\\' === \DIRECTORY_SEPARATOR) {
1023
- $this->markTestSkipped('POSIX signals do not work on Windows');
1024
- }
1025
-
1026
- $process = $this->getProcessForCode('sleep(38);');
1027
- $process->start();
1028
- try {
1029
- $process->signal(-4);
1030
- $this->fail('A RuntimeException must have been thrown');
1031
- } catch (RuntimeException $e) {
1032
- $process->stop(0);
1033
- }
1034
-
1035
- throw $e;
1036
- }
1037
-
1038
- public function testDisableOutputDisablesTheOutput()
1039
- {
1040
- $p = $this->getProcess('foo');
1041
- $this->assertFalse($p->isOutputDisabled());
1042
- $p->disableOutput();
1043
- $this->assertTrue($p->isOutputDisabled());
1044
- $p->enableOutput();
1045
- $this->assertFalse($p->isOutputDisabled());
1046
- }
1047
-
1048
- /**
1049
- * @expectedException \Symfony\Component\Process\Exception\RuntimeException
1050
- * @expectedExceptionMessage Disabling output while the process is running is not possible.
1051
- */
1052
- public function testDisableOutputWhileRunningThrowsException()
1053
- {
1054
- $p = $this->getProcessForCode('sleep(39);');
1055
- $p->start();
1056
- $p->disableOutput();
1057
- }
1058
-
1059
- /**
1060
- * @expectedException \Symfony\Component\Process\Exception\RuntimeException
1061
- * @expectedExceptionMessage Enabling output while the process is running is not possible.
1062
- */
1063
- public function testEnableOutputWhileRunningThrowsException()
1064
- {
1065
- $p = $this->getProcessForCode('sleep(40);');
1066
- $p->disableOutput();
1067
- $p->start();
1068
- $p->enableOutput();
1069
- }
1070
-
1071
- public function testEnableOrDisableOutputAfterRunDoesNotThrowException()
1072
- {
1073
- $p = $this->getProcess('echo foo');
1074
- $p->disableOutput();
1075
- $p->run();
1076
- $p->enableOutput();
1077
- $p->disableOutput();
1078
- $this->assertTrue($p->isOutputDisabled());
1079
- }
1080
-
1081
- /**
1082
- * @expectedException \Symfony\Component\Process\Exception\LogicException
1083
- * @expectedExceptionMessage Output can not be disabled while an idle timeout is set.
1084
- */
1085
- public function testDisableOutputWhileIdleTimeoutIsSet()
1086
- {
1087
- $process = $this->getProcess('foo');
1088
- $process->setIdleTimeout(1);
1089
- $process->disableOutput();
1090
- }
1091
-
1092
- /**
1093
- * @expectedException \Symfony\Component\Process\Exception\LogicException
1094
- * @expectedExceptionMessage timeout can not be set while the output is disabled.
1095
- */
1096
- public function testSetIdleTimeoutWhileOutputIsDisabled()
1097
- {
1098
- $process = $this->getProcess('foo');
1099
- $process->disableOutput();
1100
- $process->setIdleTimeout(1);
1101
- }
1102
-
1103
- public function testSetNullIdleTimeoutWhileOutputIsDisabled()
1104
- {
1105
- $process = $this->getProcess('foo');
1106
- $process->disableOutput();
1107
- $this->assertSame($process, $process->setIdleTimeout(null));
1108
- }
1109
-
1110
- /**
1111
- * @dataProvider provideOutputFetchingMethods
1112
- * @expectedException \Symfony\Component\Process\Exception\LogicException
1113
- * @expectedExceptionMessage Output has been disabled.
1114
- */
1115
- public function testGetOutputWhileDisabled($fetchMethod)
1116
- {
1117
- $p = $this->getProcessForCode('sleep(41);');
1118
- $p->disableOutput();
1119
- $p->start();
1120
- $p->{$fetchMethod}();
1121
- }
1122
-
1123
- public function provideOutputFetchingMethods()
1124
- {
1125
- return [
1126
- ['getOutput'],
1127
- ['getIncrementalOutput'],
1128
- ['getErrorOutput'],
1129
- ['getIncrementalErrorOutput'],
1130
- ];
1131
- }
1132
-
1133
- public function testStopTerminatesProcessCleanly()
1134
- {
1135
- $process = $this->getProcessForCode('echo 123; sleep(42);');
1136
- $process->run(function () use ($process) {
1137
- $process->stop();
1138
- });
1139
- $this->assertTrue(true, 'A call to stop() is not expected to cause wait() to throw a RuntimeException');
1140
- }
1141
-
1142
- public function testKillSignalTerminatesProcessCleanly()
1143
- {
1144
- $process = $this->getProcessForCode('echo 123; sleep(43);');
1145
- $process->run(function () use ($process) {
1146
- $process->signal(9); // SIGKILL
1147
- });
1148
- $this->assertTrue(true, 'A call to signal() is not expected to cause wait() to throw a RuntimeException');
1149
- }
1150
-
1151
- public function testTermSignalTerminatesProcessCleanly()
1152
- {
1153
- $process = $this->getProcessForCode('echo 123; sleep(44);');
1154
- $process->run(function () use ($process) {
1155
- $process->signal(15); // SIGTERM
1156
- });
1157
- $this->assertTrue(true, 'A call to signal() is not expected to cause wait() to throw a RuntimeException');
1158
- }
1159
-
1160
- public function responsesCodeProvider()
1161
- {
1162
- return [
1163
- //expected output / getter / code to execute
1164
- // [1,'getExitCode','exit(1);'],
1165
- // [true,'isSuccessful','exit();'],
1166
- ['output', 'getOutput', 'echo \'output\';'],
1167
- ];
1168
- }
1169
-
1170
- public function pipesCodeProvider()
1171
- {
1172
- $variations = [
1173
- 'fwrite(STDOUT, $in = file_get_contents(\'php://stdin\')); fwrite(STDERR, $in);',
1174
- 'include \''.__DIR__.'/PipeStdinInStdoutStdErrStreamSelect.php\';',
1175
- ];
1176
-
1177
- if ('\\' === \DIRECTORY_SEPARATOR) {
1178
- // Avoid XL buffers on Windows because of https://bugs.php.net/bug.php?id=65650
1179
- $sizes = [1, 2, 4, 8];
1180
- } else {
1181
- $sizes = [1, 16, 64, 1024, 4096];
1182
- }
1183
-
1184
- $codes = [];
1185
- foreach ($sizes as $size) {
1186
- foreach ($variations as $code) {
1187
- $codes[] = [$code, $size];
1188
- }
1189
- }
1190
-
1191
- return $codes;
1192
- }
1193
-
1194
- /**
1195
- * @dataProvider provideVariousIncrementals
1196
- */
1197
- public function testIncrementalOutputDoesNotRequireAnotherCall($stream, $method)
1198
- {
1199
- $process = $this->getProcessForCode('$n = 0; while ($n < 3) { file_put_contents(\''.$stream.'\', $n, 1); $n++; usleep(1000); }', null, null, null, null);
1200
- $process->start();
1201
- $result = '';
1202
- $limit = microtime(true) + 3;
1203
- $expected = '012';
1204
-
1205
- while ($result !== $expected && microtime(true) < $limit) {
1206
- $result .= $process->$method();
1207
- }
1208
-
1209
- $this->assertSame($expected, $result);
1210
- $process->stop();
1211
- }
1212
-
1213
- public function provideVariousIncrementals()
1214
- {
1215
- return [
1216
- ['php://stdout', 'getIncrementalOutput'],
1217
- ['php://stderr', 'getIncrementalErrorOutput'],
1218
- ];
1219
- }
1220
-
1221
- public function testIteratorInput()
1222
- {
1223
- $input = function () {
1224
- yield 'ping';
1225
- yield 'pong';
1226
- };
1227
-
1228
- $process = $this->getProcessForCode('stream_copy_to_stream(STDIN, STDOUT);', null, null, $input());
1229
- $process->run();
1230
- $this->assertSame('pingpong', $process->getOutput());
1231
- }
1232
-
1233
- public function testSimpleInputStream()
1234
- {
1235
- $input = new InputStream();
1236
-
1237
- $process = $this->getProcessForCode('echo \'ping\'; echo fread(STDIN, 4); echo fread(STDIN, 4);');
1238
- $process->setInput($input);
1239
-
1240
- $process->start(function ($type, $data) use ($input) {
1241
- if ('ping' === $data) {
1242
- $input->write('pang');
1243
- } elseif (!$input->isClosed()) {
1244
- $input->write('pong');
1245
- $input->close();
1246
- }
1247
- });
1248
-
1249
- $process->wait();
1250
- $this->assertSame('pingpangpong', $process->getOutput());
1251
- }
1252
-
1253
- public function testInputStreamWithCallable()
1254
- {
1255
- $i = 0;
1256
- $stream = fopen('php://memory', 'w+');
1257
- $stream = function () use ($stream, &$i) {
1258
- if ($i < 3) {
1259
- rewind($stream);
1260
- fwrite($stream, ++$i);
1261
- rewind($stream);
1262
-
1263
- return $stream;
1264
- }
1265
- };
1266
-
1267
- $input = new InputStream();
1268
- $input->onEmpty($stream);
1269
- $input->write($stream());
1270
-
1271
- $process = $this->getProcessForCode('echo fread(STDIN, 3);');
1272
- $process->setInput($input);
1273
- $process->start(function ($type, $data) use ($input) {
1274
- $input->close();
1275
- });
1276
-
1277
- $process->wait();
1278
- $this->assertSame('123', $process->getOutput());
1279
- }
1280
-
1281
- public function testInputStreamWithGenerator()
1282
- {
1283
- $input = new InputStream();
1284
- $input->onEmpty(function ($input) {
1285
- yield 'pong';
1286
- $input->close();
1287
- });
1288
-
1289
- $process = $this->getProcessForCode('stream_copy_to_stream(STDIN, STDOUT);');
1290
- $process->setInput($input);
1291
- $process->start();
1292
- $input->write('ping');
1293
- $process->wait();
1294
- $this->assertSame('pingpong', $process->getOutput());
1295
- }
1296
-
1297
- public function testInputStreamOnEmpty()
1298
- {
1299
- $i = 0;
1300
- $input = new InputStream();
1301
- $input->onEmpty(function () use (&$i) { ++$i; });
1302
-
1303
- $process = $this->getProcessForCode('echo 123; echo fread(STDIN, 1); echo 456;');
1304
- $process->setInput($input);
1305
- $process->start(function ($type, $data) use ($input) {
1306
- if ('123' === $data) {
1307
- $input->close();
1308
- }
1309
- });
1310
- $process->wait();
1311
-
1312
- $this->assertSame(0, $i, 'InputStream->onEmpty callback should be called only when the input *becomes* empty');
1313
- $this->assertSame('123456', $process->getOutput());
1314
- }
1315
-
1316
- public function testIteratorOutput()
1317
- {
1318
- $input = new InputStream();
1319
-
1320
- $process = $this->getProcessForCode('fwrite(STDOUT, 123); fwrite(STDERR, 234); flush(); usleep(10000); fwrite(STDOUT, fread(STDIN, 3)); fwrite(STDERR, 456);');
1321
- $process->setInput($input);
1322
- $process->start();
1323
- $output = [];
1324
-
1325
- foreach ($process as $type => $data) {
1326
- $output[] = [$type, $data];
1327
- break;
1328
- }
1329
- $expectedOutput = [
1330
- [$process::OUT, '123'],
1331
- ];
1332
- $this->assertSame($expectedOutput, $output);
1333
-
1334
- $input->write(345);
1335
-
1336
- foreach ($process as $type => $data) {
1337
- $output[] = [$type, $data];
1338
- }
1339
-
1340
- $this->assertSame('', $process->getOutput());
1341
- $this->assertFalse($process->isRunning());
1342
-
1343
- $expectedOutput = [
1344
- [$process::OUT, '123'],
1345
- [$process::ERR, '234'],
1346
- [$process::OUT, '345'],
1347
- [$process::ERR, '456'],
1348
- ];
1349
- $this->assertSame($expectedOutput, $output);
1350
- }
1351
-
1352
- public function testNonBlockingNorClearingIteratorOutput()
1353
- {
1354
- $input = new InputStream();
1355
-
1356
- $process = $this->getProcessForCode('fwrite(STDOUT, fread(STDIN, 3));');
1357
- $process->setInput($input);
1358
- $process->start();
1359
- $output = [];
1360
-
1361
- foreach ($process->getIterator($process::ITER_NON_BLOCKING | $process::ITER_KEEP_OUTPUT) as $type => $data) {
1362
- $output[] = [$type, $data];
1363
- break;
1364
- }
1365
- $expectedOutput = [
1366
- [$process::OUT, ''],
1367
- ];
1368
- $this->assertSame($expectedOutput, $output);
1369
-
1370
- $input->write(123);
1371
-
1372
- foreach ($process->getIterator($process::ITER_NON_BLOCKING | $process::ITER_KEEP_OUTPUT) as $type => $data) {
1373
- if ('' !== $data) {
1374
- $output[] = [$type, $data];
1375
- }
1376
- }
1377
-
1378
- $this->assertSame('123', $process->getOutput());
1379
- $this->assertFalse($process->isRunning());
1380
-
1381
- $expectedOutput = [
1382
- [$process::OUT, ''],
1383
- [$process::OUT, '123'],
1384
- ];
1385
- $this->assertSame($expectedOutput, $output);
1386
- }
1387
-
1388
- public function testChainedProcesses()
1389
- {
1390
- $p1 = $this->getProcessForCode('fwrite(STDERR, 123); fwrite(STDOUT, 456);');
1391
- $p2 = $this->getProcessForCode('stream_copy_to_stream(STDIN, STDOUT);');
1392
- $p2->setInput($p1);
1393
-
1394
- $p1->start();
1395
- $p2->run();
1396
-
1397
- $this->assertSame('123', $p1->getErrorOutput());
1398
- $this->assertSame('', $p1->getOutput());
1399
- $this->assertSame('', $p2->getErrorOutput());
1400
- $this->assertSame('456', $p2->getOutput());
1401
- }
1402
-
1403
- public function testSetBadEnv()
1404
- {
1405
- $process = $this->getProcess('echo hello');
1406
- $process->setEnv(['bad%%' => '123']);
1407
- $process->inheritEnvironmentVariables(true);
1408
-
1409
- $process->run();
1410
-
1411
- $this->assertSame('hello'.PHP_EOL, $process->getOutput());
1412
- $this->assertSame('', $process->getErrorOutput());
1413
- }
1414
-
1415
- public function testEnvBackupDoesNotDeleteExistingVars()
1416
- {
1417
- putenv('existing_var=foo');
1418
- $_ENV['existing_var'] = 'foo';
1419
- $process = $this->getProcess('php -r "echo getenv(\'new_test_var\');"');
1420
- $process->setEnv(['existing_var' => 'bar', 'new_test_var' => 'foo']);
1421
- $process->inheritEnvironmentVariables();
1422
-
1423
- $process->run();
1424
-
1425
- $this->assertSame('foo', $process->getOutput());
1426
- $this->assertSame('foo', getenv('existing_var'));
1427
- $this->assertFalse(getenv('new_test_var'));
1428
-
1429
- putenv('existing_var');
1430
- unset($_ENV['existing_var']);
1431
- }
1432
-
1433
- public function testEnvIsInherited()
1434
- {
1435
- $process = $this->getProcessForCode('echo serialize($_SERVER);', null, ['BAR' => 'BAZ', 'EMPTY' => '']);
1436
-
1437
- putenv('FOO=BAR');
1438
- $_ENV['FOO'] = 'BAR';
1439
-
1440
- $process->run();
1441
-
1442
- $expected = ['BAR' => 'BAZ', 'EMPTY' => '', 'FOO' => 'BAR'];
1443
- $env = array_intersect_key(unserialize($process->getOutput()), $expected);
1444
-
1445
- $this->assertEquals($expected, $env);
1446
-
1447
- putenv('FOO');
1448
- unset($_ENV['FOO']);
1449
- }
1450
-
1451
- public function testGetCommandLine()
1452
- {
1453
- $p = new Process(['/usr/bin/php']);
1454
-
1455
- $expected = '\\' === \DIRECTORY_SEPARATOR ? '"/usr/bin/php"' : "'/usr/bin/php'";
1456
- $this->assertSame($expected, $p->getCommandLine());
1457
- }
1458
-
1459
- /**
1460
- * @dataProvider provideEscapeArgument
1461
- */
1462
- public function testEscapeArgument($arg)
1463
- {
1464
- $p = new Process([self::$phpBin, '-r', 'echo $argv[1];', $arg]);
1465
- $p->run();
1466
-
1467
- $this->assertSame((string) $arg, $p->getOutput());
1468
- }
1469
-
1470
- public function testRawCommandLine()
1471
- {
1472
- $p = Process::fromShellCommandline(sprintf('"%s" -r %s "a" "" "b"', self::$phpBin, escapeshellarg('print_r($argv);')));
1473
- $p->run();
1474
-
1475
- $expected = <<<EOTXT
1476
- Array
1477
- (
1478
- [0] => -
1479
- [1] => a
1480
- [2] =>
1481
- [3] => b
1482
- )
1483
-
1484
- EOTXT;
1485
- $this->assertSame($expected, str_replace('Standard input code', '-', $p->getOutput()));
1486
- }
1487
-
1488
- public function provideEscapeArgument()
1489
- {
1490
- yield ['a"b%c%'];
1491
- yield ['a"b^c^'];
1492
- yield ["a\nb'c"];
1493
- yield ['a^b c!'];
1494
- yield ["a!b\tc"];
1495
- yield ['a\\\\"\\"'];
1496
- yield ['éÉèÈàÀöä'];
1497
- yield [null];
1498
- yield [1];
1499
- yield [1.1];
1500
- }
1501
-
1502
- public function testEnvArgument()
1503
- {
1504
- $env = ['FOO' => 'Foo', 'BAR' => 'Bar'];
1505
- $cmd = '\\' === \DIRECTORY_SEPARATOR ? 'echo !FOO! !BAR! !BAZ!' : 'echo $FOO $BAR $BAZ';
1506
- $p = Process::fromShellCommandline($cmd, null, $env);
1507
- $p->run(null, ['BAR' => 'baR', 'BAZ' => 'baZ']);
1508
-
1509
- $this->assertSame('Foo baR baZ', rtrim($p->getOutput()));
1510
- $this->assertSame($env, $p->getEnv());
1511
- }
1512
-
1513
- private function getProcess($commandline, string $cwd = null, array $env = null, $input = null, ?int $timeout = 60): Process
1514
- {
1515
- if (\is_string($commandline)) {
1516
- $process = Process::fromShellCommandline($commandline, $cwd, $env, $input, $timeout);
1517
- } else {
1518
- $process = new Process($commandline, $cwd, $env, $input, $timeout);
1519
- }
1520
- $process->inheritEnvironmentVariables();
1521
-
1522
- if (self::$process) {
1523
- self::$process->stop(0);
1524
- }
1525
-
1526
- return self::$process = $process;
1527
- }
1528
-
1529
- private function getProcessForCode(string $code, string $cwd = null, array $env = null, $input = null, ?int $timeout = 60): Process
1530
- {
1531
- return $this->getProcess([self::$phpBin, '-r', $code], $cwd, $env, $input, $timeout);
1532
- }
1533
- }
1534
-
1535
- class NonStringifiable
1536
- {
1537
- }