ExtensionTest.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. declare(strict_types=1);
  3. namespace SPC\Tests\builder;
  4. use PHPUnit\Framework\TestCase;
  5. use SPC\builder\BuilderProvider;
  6. use SPC\builder\Extension;
  7. use SPC\util\CustomExt;
  8. use SPC\util\DependencyUtil;
  9. use Symfony\Component\Console\Input\ArgvInput;
  10. /**
  11. * @internal
  12. */
  13. class ExtensionTest extends TestCase
  14. {
  15. private Extension $extension;
  16. protected function setUp(): void
  17. {
  18. $builder = BuilderProvider::makeBuilderByInput(new ArgvInput());
  19. [$extensions, $libs] = DependencyUtil::getExtsAndLibs(['mbregex']);
  20. $builder->proveLibs($libs);
  21. CustomExt::loadCustomExt();
  22. foreach ($extensions as $extension) {
  23. $class = CustomExt::getExtClass($extension);
  24. $ext = new $class($extension, $builder);
  25. $builder->addExt($ext);
  26. }
  27. foreach ($builder->getExts() as $ext) {
  28. $ext->checkDependency();
  29. }
  30. $this->extension = $builder->getExt('mbregex');
  31. }
  32. public function testPatches()
  33. {
  34. $this->assertFalse($this->extension->patchBeforeBuildconf());
  35. $this->assertFalse($this->extension->patchBeforeConfigure());
  36. $this->assertFalse($this->extension->patchBeforeMake());
  37. }
  38. public function testGetExtensionDependency()
  39. {
  40. $this->assertEquals('mbstring', current($this->extension->getExtensionDependency())->getName());
  41. }
  42. public function testGetWindowsConfigureArg()
  43. {
  44. $this->assertEquals('', $this->extension->getWindowsConfigureArg());
  45. }
  46. public function testGetConfigureArg()
  47. {
  48. $this->assertEquals('', $this->extension->getUnixConfigureArg());
  49. }
  50. public function testGetExtVersion()
  51. {
  52. // only swoole has version, we cannot test it
  53. $this->assertEquals(null, $this->extension->getExtVersion());
  54. }
  55. public function testGetDistName()
  56. {
  57. $this->assertEquals('mbregex', $this->extension->getName());
  58. }
  59. public function testRunCliCheckWindows()
  60. {
  61. if (is_unix()) {
  62. $this->markTestIncomplete('This test is for Windows only');
  63. } else {
  64. $this->extension->runCliCheckWindows();
  65. $this->assertTrue(true);
  66. }
  67. }
  68. public function testGetLibFilesString()
  69. {
  70. $this->assertStringEndsWith('libonig.a', $this->extension->getLibFilesString());
  71. }
  72. public function testGetName()
  73. {
  74. $this->assertEquals('mbregex', $this->extension->getName());
  75. }
  76. public function testGetUnixConfigureArg()
  77. {
  78. $this->assertEquals('', $this->extension->getUnixConfigureArg());
  79. }
  80. public function testGetEnableArg()
  81. {
  82. $this->assertEquals('', $this->extension->getEnableArg());
  83. }
  84. }