[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.jclouds.provider:cloudonestorage:bundle:1.3.0-SNAPSHOT
[WARNING] 'parent.relativePath' of POM org.jclouds:jclouds-project:1.3.0-SNAPSHOT (/Users/adriancole/workspace/git/jclouds/project/pom.xml) points at org.jclouds:jclouds-multi instead of org.sonatype.oss:oss-parent, please verify your project structure @ org.jclouds:jclouds-project:1.3.0-SNAPSHOT, /Users/adriancole/workspace/git/jclouds/project/pom.xml, line 24, column 13
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jclouds CloudOne Storage as a Service provider 1.3.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ cloudonestorage ---
[INFO] Deleting /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/target
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-maven) @ cloudonestorage ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-banned-dependencies) @ cloudonestorage ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-java) @ cloudonestorage ---
[INFO] 
[INFO] --- maven-remote-resources-plugin:1.2:process (process-remote-resources) @ cloudonestorage ---
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] 
[INFO] --- maven-resources-plugin:2.4.2:resources (default-resources) @ cloudonestorage ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/src/main/clojure
[INFO] Copying 1 resource
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3:compile (default-compile) @ cloudonestorage ---
[INFO] Compiling 2 source files to /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.4.2:testResources (default-testResources) @ cloudonestorage ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/src/test/clojure
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/src/test/resources
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3:testCompile (default-testCompile) @ cloudonestorage ---
[INFO] Compiling 13 source files to /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ cloudonestorage ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/target/surefire-reports
[INFO] Using configured provider org.apache.maven.surefire.testng.TestNGProvider

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Starting test testCreateFileOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
Starting test testCreateDirectoryOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
Starting test testCreateFile(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
Starting test testDeletePath(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
Starting test testCreateDirectory(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-2] Test testCreateDirectoryOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 98ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test testGetSystemMetadata(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-5] Test testDeletePath(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 134ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testIsPublic(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-5] Test testIsPublic(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 7ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test testListDirectories(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-2] Test testGetSystemMetadata(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 71ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testListDirectoriesOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-5] Test testListDirectories(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 69ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testListDirectory(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-5] Test testListDirectory(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 4ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testListDirectoryOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-5] Test testListDirectoryOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 43ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testNewObject(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-5] Test testNewObject(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 1ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
Starting test testReadFile(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-1] Test testCreateDirectory(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 275ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
Starting test testUpdateFile(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-2] Test testListDirectoriesOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 87ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test testUpdateFileOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest)
[pool-2-thread-5] Test testReadFile(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 25ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
[pool-2-thread-3] Test testCreateFile(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 331ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
[pool-2-thread-2] Test testUpdateFileOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 57ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
[pool-2-thread-4] Test testCreateFileOptions(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 339ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
[pool-2-thread-1] Test testUpdateFile(org.jclouds.cloudonestorage.CloudOneStorageAsyncClientTest) succeeded: 59ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
Starting test testAllContains(org.jclouds.cloudonestorage.CloudOneStorageProviderTest)
[pool-5-thread-1] Test testAllContains(org.jclouds.cloudonestorage.CloudOneStorageProviderTest) succeeded: 2ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
Starting test testInRestProperties(org.jclouds.cloudonestorage.CloudOneStorageProviderTest)
Starting test testOfTypeContains(org.jclouds.cloudonestorage.CloudOneStorageProviderTest)
Starting test testWithId(org.jclouds.cloudonestorage.CloudOneStorageProviderTest)
[pool-5-thread-4] Test testWithId(org.jclouds.cloudonestorage.CloudOneStorageProviderTest) succeeded: 6ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
[pool-5-thread-3] Test testOfTypeContains(org.jclouds.cloudonestorage.CloudOneStorageProviderTest) succeeded: 23ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
[pool-5-thread-2] Test testInRestProperties(org.jclouds.cloudonestorage.CloudOneStorageProviderTest) succeeded: 25ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
Starting test testSupportedProviders(org.jclouds.cloudonestorage.ProvidersInPropertiesTest)
[pool-6-thread-1] Test testSupportedProviders(org.jclouds.cloudonestorage.ProvidersInPropertiesTest) succeeded: 12ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Tests run: 20, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.926 sec

Results :

Tests run: 20, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- clojure-maven-plugin:1.3.8:test (test-clojure) @ cloudonestorage ---

Testing com.theoryinpractise.clojure.testrunner

Ran 0 tests containing 0 assertions.
0 failures, 0 errors.
[INFO] 
[INFO] --- maven-bundle-plugin:2.3.4:bundle (default-bundle) @ cloudonestorage ---
[INFO] 
[INFO] --- maven-source-plugin:2.1.1:jar-no-fork (attach-sources) @ cloudonestorage ---
[INFO] Building jar: /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/target/cloudonestorage-1.3.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-javadoc-plugin:2.8:jar (javadoc) @ cloudonestorage ---
[INFO] Skipping javadoc generation
[INFO] 
[INFO] --- maven-jar-plugin:2.3.1:test-jar (default) @ cloudonestorage ---
[INFO] Building jar: /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/target/cloudonestorage-1.3.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (integration) @ cloudonestorage ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/target/surefire-reports
[INFO] Using configured provider org.apache.maven.surefire.testng.TestNGProvider

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
*** containers to test: [adriancole-blobstore0, adriancole-blobstore1, adriancole-blobstore2, adriancole-blobstore3, adriancole-blobstore4, adriancole-blobstore5, adriancole-blobstore6, adriancole-blobstore7, adriancole-blobstore8, adriancole-blobstore9]
Starting test testPutObjectStream(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test testPutObjectStream(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 9338ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test blobNotFound(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test blobNotFound(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 6606ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test deleteObject(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 10653ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test deleteObjectNoContainer(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test deleteObjectNoContainer(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 2942ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test deleteObjectNotFound(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test deleteObjectNotFound(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 8481ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testBigFileGets(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test testBigFileGets(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 58122ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testPutFileParallel(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test testPutFileParallel(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 37723ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 41141ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 12117ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobIntegrationLiveTest) succeeded: 11435ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test testCopyUrl(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobLiveTest)
[TestNG] Test testCopyUrl(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobLiveTest) succeeded: 19804ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
Starting test testContains(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testContains(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
Starting test testEntrySet(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testEntrySet(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 27752ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
Starting test testPut(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testPut(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 13827ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
Starting test testPutAll(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testPutAll(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 13633ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testPutMoreThanSingleListing(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 36433ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
Starting test testRemove(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testRemove(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 15914ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
Starting test testValues(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testValues(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 15564ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
Starting test testClear(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testClear(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 14103ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
Starting test testContainsKey(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testContainsKey(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 12551ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Starting test testDirectory(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 20, failed: 1, skipped: 0.
Starting test testIsEmpty(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testIsEmpty(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 11791ms
Test suite progress: tests succeeded: 21, failed: 1, skipped: 0.
Starting test testKeySet(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testKeySet(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 12773ms
Test suite progress: tests succeeded: 22, failed: 1, skipped: 0.
Starting test testListContainer(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest) succeeded: 6815ms
Test suite progress: tests succeeded: 23, failed: 1, skipped: 0.
Starting test testSignGetUrl(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobSignerLiveTest)
[TestNG] Test testSignGetUrl(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobSignerLiveTest) succeeded: 11566ms
Test suite progress: tests succeeded: 24, failed: 1, skipped: 0.
Starting test testSignGetUrlOptions(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobSignerLiveTest)
[TestNG] Test testSignGetUrlOptions(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobSignerLiveTest) succeeded: 11160ms
Test suite progress: tests succeeded: 25, failed: 1, skipped: 0.
Starting test testSignPutUrl(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobSignerLiveTest)
[TestNG] Test testSignPutUrl(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobSignerLiveTest) succeeded: 6622ms
Test suite progress: tests succeeded: 26, failed: 1, skipped: 0.
Starting test testSignRemoveUrl(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobSignerLiveTest)
[TestNG] Test testSignRemoveUrl(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobSignerLiveTest) succeeded: 13885ms
Test suite progress: tests succeeded: 27, failed: 1, skipped: 0.
Starting test testListContainerMarker(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testListContainerMarker(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 28, failed: 1, skipped: 0.
Starting test testListContainerMaxResults(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testListContainerMaxResults(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 29, failed: 1, skipped: 0.
Starting test containerDoesntExist(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test containerDoesntExist(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 807ms
Test suite progress: tests succeeded: 30, failed: 1, skipped: 0.
Starting test containerExists(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test containerExists(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 6535ms
Test suite progress: tests succeeded: 31, failed: 1, skipped: 0.
Starting test deleteContainerIfEmpty(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore7...
[TestNG] Test deleteContainerIfEmpty(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 11069ms
Test suite progress: tests succeeded: 32, failed: 1, skipped: 0.
Starting test deleteContainerWithContents(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore8...
[TestNG] Test deleteContainerWithContents(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 18782ms
Test suite progress: tests succeeded: 33, failed: 1, skipped: 0.
Starting test testClearWhenContentsUnderPath(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testClearWhenContentsUnderPath(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 48253ms
Test suite progress: tests succeeded: 34, failed: 1, skipped: 0.
Starting test testDirectory(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 60064ms
Test suite progress: tests succeeded: 35, failed: 1, skipped: 0.
Starting test testListContainer(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 61732ms
Test suite progress: tests succeeded: 36, failed: 1, skipped: 0.
Starting test testListContainerPrefix(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testListContainerPrefix(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 98826ms
Test suite progress: tests succeeded: 37, failed: 1, skipped: 0.
Starting test testListRootUsesDelimiter(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testListRootUsesDelimiter(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 100826ms
Test suite progress: tests succeeded: 38, failed: 1, skipped: 0.
Starting test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 18781ms
Test suite progress: tests succeeded: 39, failed: 1, skipped: 0.
Starting test testWithDetails(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest)
[TestNG] Test testWithDetails(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerIntegrationLiveTest) succeeded: 11682ms
Test suite progress: tests succeeded: 40, failed: 1, skipped: 0.
Starting test testPublicAccess(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerLiveTest)
*** allocated new container adriancole-blobstore6...
*** allocated new container adriancole-blobstore613...
[TestNG] Test testPublicAccess(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageContainerLiveTest) succeeded: 14289ms
Test suite progress: tests succeeded: 41, failed: 1, skipped: 0.
Starting test testEntrySet(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testEntrySet(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 27578ms
Test suite progress: tests succeeded: 42, failed: 1, skipped: 0.
Starting test testPutAll(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutAll(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 12145ms
Test suite progress: tests succeeded: 43, failed: 1, skipped: 0.
Starting test testPutAllBytes(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutAllBytes(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 13758ms
Test suite progress: tests succeeded: 44, failed: 1, skipped: 0.
Starting test testPutAllFiles(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutAllFiles(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 15140ms
Test suite progress: tests succeeded: 45, failed: 1, skipped: 0.
Starting test testPutAllStrings(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutAllStrings(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 17096ms
Test suite progress: tests succeeded: 46, failed: 1, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutMoreThanSingleListing(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 34295ms
Test suite progress: tests succeeded: 47, failed: 1, skipped: 0.
Starting test testRemove(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testRemove(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 16495ms
Test suite progress: tests succeeded: 48, failed: 1, skipped: 0.
Starting test testValues(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testValues(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 11864ms
Test suite progress: tests succeeded: 49, failed: 1, skipped: 0.
Starting test testClear(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testClear(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 13563ms
Test suite progress: tests succeeded: 50, failed: 1, skipped: 0.
Starting test testContainsKey(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testContainsKey(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 12125ms
Test suite progress: tests succeeded: 51, failed: 1, skipped: 0.
Starting test testDirectory(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 51, failed: 2, skipped: 0.
Starting test testIsEmpty(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testIsEmpty(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 11553ms
Test suite progress: tests succeeded: 52, failed: 2, skipped: 0.
Starting test testKeySet(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testKeySet(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 11081ms
Test suite progress: tests succeeded: 53, failed: 2, skipped: 0.
Starting test testListContainer(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest) succeeded: 6480ms
Test suite progress: tests succeeded: 54, failed: 2, skipped: 0.
Starting test containerDoesntExist(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageServiceIntegrationLiveTest)
[TestNG] Test containerDoesntExist(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageServiceIntegrationLiveTest) succeeded: 375ms
Test suite progress: tests succeeded: 55, failed: 2, skipped: 0.
Starting test testAllLocations(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageServiceIntegrationLiveTest)
*** allocated new container adriancole-blobstore9...
 >> creating container in location [id=cloudonestorage, scope=PROVIDER, description=https://cloudonestorage.peer1.com, parent=null, iso3166Codes=[US-GA, US-TX], metadata={}]
 << call complete.. checking
*** allocated new container adriancole-blobstore915...
[TestNG] Test testAllLocations(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageServiceIntegrationLiveTest) succeeded: 9728ms
Test suite progress: tests succeeded: 56, failed: 2, skipped: 0.
Starting test testGetAssignableLocations(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageServiceIntegrationLiveTest)
location [id=cloudonestorage, scope=PROVIDER, description=https://cloudonestorage.peer1.com, parent=null, iso3166Codes=[US-GA, US-TX], metadata={}]
[TestNG] Test testGetAssignableLocations(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageServiceIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 57, failed: 2, skipped: 0.
Starting test testCreateDirectory(org.jclouds.cloudonestorage.CloudOneStorageClientLiveTest)
[TestNG] Test testCreateDirectory(org.jclouds.cloudonestorage.CloudOneStorageClientLiveTest) failed.
Test suite progress: tests succeeded: 57, failed: 3, skipped: 0.
Starting test testListDirectorys(org.jclouds.cloudonestorage.CloudOneStorageClientLiveTest)
[TestNG] Test testListDirectorys(org.jclouds.cloudonestorage.CloudOneStorageClientLiveTest) failed.
Test suite progress: tests succeeded: 57, failed: 4, skipped: 0.
[TestNG] Test testListOptions(org.jclouds.cloudonestorage.CloudOneStorageClientLiveTest) skipped.
Test suite progress: tests succeeded: 57, failed: 4, skipped: 1.
[TestNG] Test testFileOperations(org.jclouds.cloudonestorage.CloudOneStorageClientLiveTest) skipped.
Test suite progress: tests succeeded: 57, failed: 4, skipped: 2.
Exception in thread "user thread 1" java.lang.IllegalStateException: interrupted calling get() on [[method=AtmosAsyncClient.listDirectories, request=GET https://cloudonestorage.peer1.com/rest/namespace HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Tests run: 63, Failures: 4, Errors: 0, Skipped: 2, Time elapsed: 1,353.707 sec <<< FAILURE!

Results :

Failed tests:   testDirectory(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageBlobMapIntegrationLiveTest): Sets differ: expected [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, apps/0, apps/1, apps/2, apps/3, apps/4, apps/5, apps/6, apps/7, apps/8, apps/9] but got [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  testDirectory(org.jclouds.cloudonestorage.blobstore.integration.CloudOneStorageInputStreamMapIntegrationLiveTest): Sets differ: expected [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, apps/0, apps/1, apps/2, apps/3, apps/4, apps/5, apps/6, apps/7, apps/8, apps/9] but got [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  testCreateDirectory(org.jclouds.cloudonestorage.CloudOneStorageClientLiveTest): test.jclouds-runatcloud-tweetstore not found: The requested object was not found.
  testListDirectorys(org.jclouds.cloudonestorage.CloudOneStorageClientLiveTest)

Tests run: 63, Failures: 4, Errors: 0, Skipped: 2

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22:56.961s
[INFO] Finished at: Sun Jan 15 16:46:41 PST 2012
[INFO] Final Memory: 20M/265M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (integration) on project cloudonestorage: There are test failures.
[ERROR] 
[ERROR] Please refer to /Users/adriancole/workspace/git/jclouds/providers/cloudonestorage/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
