I'm getting failures in the cordova-android, cordova-ios, and cordova-osx tests 
that I suspect are related to those tests not being updated to account for 
fs-extra in cordova-common and cordova-lib. I'm getting other random-seeming 
failures too:

<details><summary>cordova-common results</summary>

```
Command failed: npm test
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] jasmine: `jasmine 
JASMINE_CONFIG_PATH=spec/support/jasmine.json`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] jasmine script.
npm ERR! This is probably not a problem with npm. There is likely additional 
logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/dpogue/.npm/_logs/2018-09-17T22_03_00_191Z-debug.log
npm ERR! Test failed.  See above for more details.


> [email protected] test 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common
> npm run eslint && npm run jasmine


> [email protected] eslint 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common
> eslint src spec


> [email protected] jasmine 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common
> jasmine JASMINE_CONFIG_PATH=spec/support/jasmine.json

Started
..F.....FF.FFFFFF.....................FF............................................................................................................................................................*.......*............................................

Failures:
1) config-changes module queue methods addInstalledPluginToPrepareQueue Test 
001 : should append specified plugin to platform.json
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets'
 })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
        at <Jasmine>
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)

2) config-changes module generate_plugin_config_munge method for android 
projects Test 007 : should return a flat config hierarchy for simple, one-off 
config changes
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: '/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp' })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
        at <Jasmine>
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at Object.rimrafSync [as removeSync] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js:76:12)

3) config-changes module generate_plugin_config_munge method for android 
projects Test 008 : should split out multiple children of config-file elements 
into individual leaves
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets'
 })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
        at <Jasmine>
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)

4) config-changes module generate_plugin_config_munge method for android 
projects Test 010 : should increment config hierarchy leaves if different 
config-file elements target the same file + selector + xml
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets/AppIcon.appiconset'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets/AppIcon.appiconset'
 })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets/AppIcon.appiconset'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
        at <Jasmine>
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)

5) config-changes module generate_plugin_config_munge method for android 
projects Test 011 : should take into account interpolation variables
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets/LaunchImage.launchimage'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets/LaunchImage.launchimage'
 })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Images.xcassets/LaunchImage.launchimage'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
        at <Jasmine>
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)

6) config-changes module generate_plugin_config_munge method for android 
projects Test 012 : should create munges for platform-agnostic config.xml 
changes
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: '/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp' })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
        at <Jasmine>
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at Object.rimrafSync [as removeSync] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js:76:12)

7) config-changes module processing of plugins (via process method) Test 014 : 
should generate config munges for queued plugins
  Message:
    CordovaError: Cannot find plugin.xml for plugin 
"org.test.plugins.dummyplugin". Please try adding it again.
  Stack:
    error properties: undefined
        at <Jasmine>
        at new PluginInfo 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/PluginInfo/PluginInfo.js:368:15)
        at PluginInfoProvider.get 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/PluginInfo/PluginInfoProvider.js:35:32)
        at 
/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigChanges.js:507:50
        at <Jasmine>
        at PlatformMunger_process [as process] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigChanges.js:506:45)
        at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js:213:20)
        at <Jasmine>
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: '/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman' })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at Object.rimrafSync [as removeSync] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js:76:12)
        at <Jasmine>

8) config-changes module processing of plugins (via process method) : 
installation of xml config files Test 015 : should call graftXML for every new 
config munge it introduces (every leaf in config munge that does not exist)
  Message:
    CordovaError: Cannot find plugin.xml for plugin 
"org.test.plugins.dummyplugin". Please try adding it again.
  Stack:
    error properties: undefined
        at <Jasmine>
        at new PluginInfo 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/PluginInfo/PluginInfo.js:368:15)
        at PluginInfoProvider.get 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/PluginInfo/PluginInfoProvider.js:35:32)
        at 
/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigChanges.js:507:50
        at <Jasmine>
        at PlatformMunger_process [as process] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigChanges.js:506:45)
        at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js:228:28)
        at <Jasmine>
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Classes'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Classes' })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp/Classes'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
        at <Jasmine>
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)

9) config-changes module processing of plugins (via process method) : 
installation of xml config files Test 016 : should not call graftXML for a 
config munge that already exists from another plugin
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: '/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp' })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/SampleApp'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at rimrafSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at options.readdirSync.forEach.f 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:39)
        at <Jasmine>
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:291:26)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at Object.rimrafSync [as removeSync] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js:76:12)

10) config-changes module processing of plugins (via process method) : 
installation Test 025 : should resolve wildcard config-file targets to the 
project, if applicable
  Message:
    Error: Does not appear to be an xcode project, no xcode project file in 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman
  Stack:
    Error: Does not appear to be an xcode project, no xcode project file in 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman
        at Function.getIOSProjectname 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigFile.js:249:15)
        at resolveConfigFilePath 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigFile.js:221:32)
        at ConfigFile_load [as load] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigFile.js:62:36)
        at new ConfigFile 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigFile.js:53:10)
        at ConfigKeeper_get [as get] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigKeeper.js:51:23)
        at PlatformMunger_apply_file_munge [as apply_file_munge] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigChanges.js:78:50)
        at munge_helper 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigChanges.js:252:14)
        at PlatformMunger.add_plugin_changes 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigChanges.js:159:12)
        at 
/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/src/ConfigChanges/ConfigChanges.js:508:14
        at <Jasmine>
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: '/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman' })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at Object.rimrafSync [as removeSync] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js:76:12)
        at <Jasmine>

11) config-changes module processing of plugins (via process method) : 
installation Test 026 : should move successfully installed plugins from queue 
to installed plugins section, and include/retain vars if applicable
  Message:
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman'
  Stack:
    error properties: Object({ errno: -66, syscall: 'rmdir', code: 'ENOTEMPTY', 
path: '/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman' })
    Error: ENOTEMPTY: directory not empty, rmdir 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman'
        at Object.rmdirSync (fs.js:677:3)
        at rmkidsSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:304:27)
        at rmdirSync 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:281:7)
        at Object.rimrafSync [as removeSync] 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/node_modules/fs-extra/lib/remove/rimraf.js:252:7)
        at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-common/spec/ConfigChanges/ConfigChanges.spec.js:76:12)
        at <Jasmine>
Pending:

1) PluginManager class instance addPlugin method Test 003 : should reject if 
"plugin" parameter is not specified or not a PluginInfo instance
  Temporarily disabled with xit


2) spawn method operation on windows should escape arguments if `cmd` is not an 
*.exe
  test should only run on windows

249 specs, 11 failures, 2 pending specs
Finished in 4.043 seconds
249 specs, 11 failures
```
</details>

<details><summary>cordova-lib results</summary>

```
Command failed: npm test
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] e2e-tests: `jasmine 
JASMINE_CONFIG_PATH=integration-tests/jasmine.json`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] e2e-tests script.
npm ERR! This is probably not a problem with npm. There is likely additional 
logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/dpogue/.npm/_logs/2018-09-17T22_06_41_229Z-debug.log
npm ERR! Test failed.  See above for more details.


> [email protected] test 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib
> npm run eslint && npm run unit-tests && npm run e2e-tests


> [email protected] eslint 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib
> eslint .


> [email protected] unit-tests 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib
> jasmine JASMINE_CONFIG_PATH=spec/jasmine.json

Started
.......................................*............................................................*.............................................*.................................................................................****....................................................................

Pending:

1) cordova/platform/addHelper happy path (success conditions) after platform 
api invocation when the restoring option is not provided should invoke 
preparePlatforms twice (?!?), once before installPluginsForNewPlatforms and 
once after... ?!
  Temporarily disabled with xit


2) cordova/plugin/add main method happy path should invoke preparePlatforms if 
plugman.install returned a falsey value
  Temporarily disabled with xit


3) cordova/plugin/list should warn if plugin list contains a plugin dependency 
that does not have a version satisfied
  Temporarily disabled with xit


4) serve command Test 001 : should not run outside of a Cordova-based project
  No reason given


5) serve command `serve` should fall back to assets/www on Android
  Temporarily disabled with xit


6) serve command `serve` should fall back to www on BlackBerry10
  Temporarily disabled with xit


7) serve command `serve` should fall back to www on iOS
  Temporarily disabled with xit

300 specs, 0 failures, 7 pending specs
Finished in 5.496 seconds

> [email protected] e2e-tests 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib
> jasmine JASMINE_CONFIG_PATH=integration-tests/jasmine.json

Started
.............*....................F....Subproject Path: CordovaLib
Subproject Path: app
..........cp: no such file or directory: 
/private/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/cordova-lib-cordova-platform-e2e-test-xy9qNF/project/node_modules/cordova-platform-test/node_modules

test-platform:Api:prepare
test-platform:Api:getPlatformInfo
test-platform:Api:prepare
test-platform:Api:getPlatformInfo
....................................*..........F............

Failures:
1) pkgJson plugin end-to-end Test#025 : if you add a platform/plugin with local 
path, pkg.json gets updated
  Message:
    CordovaError: Error: npm: Command failed with exit code 254 Error output:
    npm WARN [email protected] No description
    npm WARN [email protected] No repository field.
    
    npm ERR! path 
/private/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/cordova-lib-pkgJson-jZvVOS/project/node_modules/.staging/cordova-browser-555df1c0/node_modules/abbrev
    npm ERR! code ENOENT
    npm ERR! errno -2
    npm ERR! syscall rename
    npm ERR! enoent ENOENT: no such file or directory, rename 
'/private/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/cordova-lib-pkgJson-jZvVOS/project/node_modules/.staging/cordova-browser-555df1c0/node_modules/abbrev'
 -> 
'/private/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/cordova-lib-pkgJson-jZvVOS/project/node_modules/.staging/abbrev-b88eb5c1'
    npm ERR! enoent This is related to npm not being able to find a file.
    npm ERR! enoent 
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/dpogue/.npm/_logs/2018-09-17T22_04_37_770Z-debug.log
  Stack:
    error properties: undefined
        at <Jasmine>
        at 
/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib/src/plugman/fetch.js:98:41
        at _rejected 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-fetch/node_modules/q/q.js:864:24)
        at 
/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-fetch/node_modules/q/q.js:890:30
        at Promise.when 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-fetch/node_modules/q/q.js:1142:31)
        at Promise.promise.promiseDispatch 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-fetch/node_modules/q/q.js:808:41)
        at 
/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-fetch/node_modules/q/q.js:624:44
        at runSingle 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-fetch/node_modules/q/q.js:137:13)
        at flush 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-fetch/node_modules/q/q.js:125:13)
        at process._tickCallback (internal/process/next_tick.js:61:11)

2) plugman/uninstall uninstallPlatform success Test 002 : should get 
PlatformApi instance for platform and invoke its' removePlugin method
  Message:
    Expected spy getPlatformApi to have been called with [ 'android', 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/cordova-lib-plugman_uninstall_test-u7ocG8/project'
 ] but actual calls were [ 'android', 
'/private/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/cordova-lib-plugman_uninstall_test-u7ocG8/project'
 ].
  Stack:
    Error: Expected spy getPlatformApi to have been called with [ 'android', 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/cordova-lib-plugman_uninstall_test-u7ocG8/project'
 ] but actual calls were [ 'android', 
'/private/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/cordova-lib-plugman_uninstall_test-u7ocG8/project'
 ].
        at <Jasmine>
        at 
/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib/integration-tests/plugman_uninstall.spec.js:117:48
        at _fulfilled 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib/node_modules/q/q.js:854:54)
        at 
/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib/node_modules/q/q.js:883:30
        at Promise.promise.promiseDispatch 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-lib/node_modules/q/q.js:816:13)
Pending:

1) HooksRunner fire method plugin hooks Test 012 : should run 
before_plugin_uninstall, before_plugin_install, after_plugin_install hooks for 
a plugin being installed with correct opts.plugin context
  Temporarily disabled with xit


2) fetch plugin in a dir with spaces should copy locally-available plugin to 
plugins directory when spaces in path
  No reason given

109 specs, 2 failures, 2 pending specs
Finished in 213.841 seconds
300 specs, 0 failures / 109 specs, 2 failures
```
</details>

<details><summary>cordova-android results</summary>

```
Command failed: npm test
npm ERR! code ELIFECYCLE
npm ERR! errno 4
npm ERR! [email protected] unit-tests: `jasmine 
--config=spec/unit/jasmine.json`
npm ERR! Exit status 4
npm ERR! 
npm ERR! Failed at the [email protected] unit-tests script.
npm ERR! This is probably not a problem with npm. There is likely additional 
logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/dpogue/.npm/_logs/2018-09-17T22_02_59_308Z-debug.log
ERROR: "unit-tests" exited with 4.
npm ERR! Test failed.  See above for more details.


> [email protected] test 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android
> run-s eslint unit-tests java-unit-tests e2e-tests


> [email protected] eslint 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android
> run-s -c eslint:*


> [email protected] eslint:scripts 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android
> eslint bin spec test


> [email protected] eslint:bins 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android
> eslint 'bin/**/*' --ignore-pattern '**/*.*' --ignore-pattern '**/gitignore'


> [email protected] unit-tests 
> /Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android
> jasmine --config=spec/unit/jasmine.json

Randomized with seed 60222
Started
.........................................................................................................................................................................rm:
 could not remove file (code ENOENT): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.childbrowser/src/ios/ChildBrowser.bundle/[email protected]

.rm: could not remove file (code ENOENT): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.dummyplugin/src/blackberry10/index.js

.rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.dummyplugin

rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.dummyplugin
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins

rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.dummyplugin
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova

rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.dummyplugin
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman

.rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.dummyplugin

rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.dummyplugin
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins

rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins/org.test.plugins.dummyplugin
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova/plugins
rm: could not remove directory (code ENOTEMPTY): 
/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman/cordova

.shell.js: internal error
Error: ENOENT: no such file or directory, stat 
'/var/folders/9z/n6fm10417md6hps32379wb9r0000gp/T/plugman'
    at Object.statSync (fs.js:829:3)
    at Object._cp 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/node_modules/shelljs/src/cp.js:129:28)
    at Object.cp 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/node_modules/shelljs/src/common.js:186:23)
    at UserContext.<anonymous> 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/spec/unit/pluginHandlers/handlers.spec.js:115:23)
    at QueueRunner.attempt 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:5111:44)
    at QueueRunner.run 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:5149:25)
    at runNext 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:5075:18)
    at next 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:5082:11)
    at QueueRunner.onComplete 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:5000:12)
    at Immediate._onImmediate 
(/Users/dpogue/Desktop/cordova-cross-spawn-test/cordova-android/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:5165:12)
```
</details>



[ Full content available at: https://github.com/apache/cordova-common/pull/50 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to