[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.jclouds.api:atmos:bundle:1.6.0-SNAPSHOT
[WARNING] 'parent.relativePath' of POM org.jclouds:jclouds-project:1.6.0-SNAPSHOT (/private/tmp/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.6.0-SNAPSHOT, /private/tmp/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 atmos components 1.6.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ atmos ---
[INFO] Deleting /private/tmp/jclouds/apis/atmos/target
[INFO] 
[INFO] --- maven-enforcer-plugin:1.1.1:enforce (enforce-maven) @ atmos ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.1.1:enforce (enforce-banned-dependencies) @ atmos ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.1.1:enforce (enforce-java) @ atmos ---
[INFO] 
[INFO] --- maven-remote-resources-plugin:1.4:process (process-remote-resources) @ atmos ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ atmos ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /private/tmp/jclouds/apis/atmos/src/main/clojure
[INFO] Copying 1 resource
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ atmos ---
[INFO] Compiling 51 source files to /private/tmp/jclouds/apis/atmos/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ atmos ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /private/tmp/jclouds/apis/atmos/src/test/clojure
[INFO] Copying 5 resources
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ atmos ---
[INFO] Compiling 28 source files to /private/tmp/jclouds/apis/atmos/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ atmos ---
[INFO] Surefire report directory: /private/tmp/jclouds/apis/atmos/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@270e3293
Starting test testTransformableToContains(org.jclouds.atmos.AtmosApiMetadataTest)
Starting test testWithId(org.jclouds.atmos.AtmosApiMetadataTest)
Starting test testAllContains(org.jclouds.atmos.AtmosApiMetadataTest)
[pool-1-thread-1] Test testAllContains(org.jclouds.atmos.AtmosApiMetadataTest) succeeded: 9ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
[pool-1-thread-2] Test testTransformableToContains(org.jclouds.atmos.AtmosApiMetadataTest) succeeded: 12ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
[pool-1-thread-3] Test testWithId(org.jclouds.atmos.AtmosApiMetadataTest) succeeded: 13ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test testDeletePath(org.jclouds.atmos.AtmosAsyncClientTest)
Starting test testCreateFileOptions(org.jclouds.atmos.AtmosAsyncClientTest)
Starting test testCreateDirectory(org.jclouds.atmos.AtmosAsyncClientTest)
Starting test testCreateFile(org.jclouds.atmos.AtmosAsyncClientTest)
Starting test testCreateDirectoryOptions(org.jclouds.atmos.AtmosAsyncClientTest)
[pool-2-thread-5] Test testDeletePath(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 45ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testGetSystemMetadata(org.jclouds.atmos.AtmosAsyncClientTest)
[pool-2-thread-1] Test testCreateDirectory(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 52ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
[pool-2-thread-2] Test testCreateDirectoryOptions(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 52ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testIsPublic(org.jclouds.atmos.AtmosAsyncClientTest)
Starting test testListDirectories(org.jclouds.atmos.AtmosAsyncClientTest)
[pool-2-thread-5] Test testGetSystemMetadata(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 13ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testListDirectoriesOptions(org.jclouds.atmos.AtmosAsyncClientTest)
[pool-2-thread-2] Test testListDirectories(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 16ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
[pool-2-thread-5] Test testListDirectoriesOptions(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 10ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
Starting test testListDirectory(org.jclouds.atmos.AtmosAsyncClientTest)
Starting test testListDirectoryOptions(org.jclouds.atmos.AtmosAsyncClientTest)
[pool-2-thread-1] Test testIsPublic(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 20ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test testNewObject(org.jclouds.atmos.AtmosAsyncClientTest)
[pool-2-thread-1] Test testNewObject(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 1ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
Starting test testReadFile(org.jclouds.atmos.AtmosAsyncClientTest)
[pool-2-thread-2] Test testListDirectory(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 5ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
[pool-2-thread-5] Test testListDirectoryOptions(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 5ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
Starting test testUpdateFile(org.jclouds.atmos.AtmosAsyncClientTest)
Starting test testUpdateFileOptions(org.jclouds.atmos.AtmosAsyncClientTest)
[pool-2-thread-1] Test testReadFile(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 16ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
[pool-2-thread-2] Test testUpdateFile(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 111ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
[pool-2-thread-3] Test testCreateFile(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 186ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
[pool-2-thread-5] Test testUpdateFileOptions(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 112ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
[pool-2-thread-4] Test testCreateFileOptions(org.jclouds.atmos.AtmosAsyncClientTest) succeeded: 187ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
Starting test testCorrectSystemMetadataObjectName(org.jclouds.atmos.functions.AtmosObjectNameTest)
Starting test testCorrectContentMetadataName(org.jclouds.atmos.functions.AtmosObjectNameTest)
Starting test testContextImpl(org.jclouds.atmos.blobstore.config.AtmosBlobStoreModuleTest)
[pool-5-thread-3] Test testCorrectSystemMetadataObjectName(org.jclouds.atmos.functions.AtmosObjectNameTest) succeeded: 0ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
[pool-5-thread-2] Test testCorrectContentMetadataName(org.jclouds.atmos.functions.AtmosObjectNameTest) succeeded: 0ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Starting test testMustBeAtmosObject(org.jclouds.atmos.functions.AtmosObjectNameTest)
Starting test testNullIsBad(org.jclouds.atmos.functions.AtmosObjectNameTest)
[pool-5-thread-5] Test testNullIsBad(org.jclouds.atmos.functions.AtmosObjectNameTest) succeeded: 0ms
Test suite progress: tests succeeded: 21, failed: 0, skipped: 0.
[pool-5-thread-4] Test testMustBeAtmosObject(org.jclouds.atmos.functions.AtmosObjectNameTest) succeeded: 1ms
Test suite progress: tests succeeded: 22, failed: 0, skipped: 0.
Starting test testGood(org.jclouds.atmos.binders.BindMetadataToHeadersTest)
Starting test testMustBeAtmosObject(org.jclouds.atmos.binders.BindMetadataToHeadersTest)
Starting test testNullContentLengthIllegal(org.jclouds.atmos.binders.BindMetadataToHeadersTest)
Starting test testNullIsBad(org.jclouds.atmos.binders.BindMetadataToHeadersTest)
[pool-5-thread-2] Test testMustBeAtmosObject(org.jclouds.atmos.binders.BindMetadataToHeadersTest) succeeded: 1ms
Test suite progress: tests succeeded: 23, failed: 0, skipped: 0.
[pool-5-thread-5] Test testNullContentLengthIllegal(org.jclouds.atmos.binders.BindMetadataToHeadersTest) succeeded: 1ms
Test suite progress: tests succeeded: 24, failed: 0, skipped: 0.
[pool-5-thread-4] Test testNullIsBad(org.jclouds.atmos.binders.BindMetadataToHeadersTest) succeeded: 1ms
Test suite progress: tests succeeded: 25, failed: 0, skipped: 0.
Starting test testListableMeta(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest)
Starting test testNullPayloadIsBad(org.jclouds.atmos.binders.BindMetadataToHeadersTest)
Starting test testListableTags(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest)
[pool-5-thread-2] Test testNullPayloadIsBad(org.jclouds.atmos.binders.BindMetadataToHeadersTest) succeeded: 0ms
Test suite progress: tests succeeded: 26, failed: 0, skipped: 0.
Starting test testMeta(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest)
[pool-5-thread-5] Test testListableMeta(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest) succeeded: 2ms
Test suite progress: tests succeeded: 27, failed: 0, skipped: 0.
[pool-5-thread-3] Test testGood(org.jclouds.atmos.binders.BindMetadataToHeadersTest) succeeded: 5ms
Test suite progress: tests succeeded: 28, failed: 0, skipped: 0.
[pool-5-thread-2] Test testMeta(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest) succeeded: 1ms
Test suite progress: tests succeeded: 29, failed: 0, skipped: 0.
[pool-5-thread-4] Test testListableTags(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest) succeeded: 3ms
Test suite progress: tests succeeded: 30, failed: 0, skipped: 0.
Starting test testMustBeUserMetadata(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest)
Starting test testTags(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest)
[pool-5-thread-5] Test testMustBeUserMetadata(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest) succeeded: 1ms
Test suite progress: tests succeeded: 31, failed: 0, skipped: 0.
[pool-5-thread-2] Test testTags(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest) succeeded: 0ms
Starting test testNullIsBad(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest)
Test suite progress: tests succeeded: 32, failed: 0, skipped: 0.
Starting test testFoundIsEndpointWhenSet(org.jclouds.atmos.fallbacks.EndpointIfAlreadyExistsTest)
[pool-5-thread-3] Test testNullIsBad(org.jclouds.atmos.binders.BindUserMetadataToHeadersTest) succeeded: 1ms
Test suite progress: tests succeeded: 33, failed: 0, skipped: 0.
Starting test testFoundIsNullWhenEndpointNotSet(org.jclouds.atmos.fallbacks.EndpointIfAlreadyExistsTest)
Starting test testNotFoundPropagates(org.jclouds.atmos.fallbacks.EndpointIfAlreadyExistsTest)
Starting test testNullIsBad(org.jclouds.atmos.fallbacks.EndpointIfAlreadyExistsTest)
[pool-5-thread-3] Test testNullIsBad(org.jclouds.atmos.fallbacks.EndpointIfAlreadyExistsTest) succeeded: 0ms
Test suite progress: tests succeeded: 34, failed: 0, skipped: 0.
[pool-5-thread-2] Test testNotFoundPropagates(org.jclouds.atmos.fallbacks.EndpointIfAlreadyExistsTest) succeeded: 2ms
Test suite progress: tests succeeded: 35, failed: 0, skipped: 0.
Starting test testLimit(org.jclouds.atmos.options.ListOptionsTest)
[pool-5-thread-3] Test testLimit(org.jclouds.atmos.options.ListOptionsTest) succeeded: 0ms
Test suite progress: tests succeeded: 36, failed: 0, skipped: 0.
Starting test testMeta(org.jclouds.atmos.options.ListOptionsTest)
Starting test testLimitStatic(org.jclouds.atmos.options.ListOptionsTest)
[pool-5-thread-3] Test testMeta(org.jclouds.atmos.options.ListOptionsTest) succeeded: 0ms
Test suite progress: tests succeeded: 37, failed: 0, skipped: 0.
[pool-5-thread-2] Test testLimitStatic(org.jclouds.atmos.options.ListOptionsTest) succeeded: 0ms
Test suite progress: tests succeeded: 38, failed: 0, skipped: 0.
[pool-5-thread-5] Test testFoundIsNullWhenEndpointNotSet(org.jclouds.atmos.fallbacks.EndpointIfAlreadyExistsTest) succeeded: 4ms
Test suite progress: tests succeeded: 39, failed: 0, skipped: 0.
[pool-5-thread-4] Test testFoundIsEndpointWhenSet(org.jclouds.atmos.fallbacks.EndpointIfAlreadyExistsTest) succeeded: 6ms
Test suite progress: tests succeeded: 40, failed: 0, skipped: 0.
Starting test testNoMeta(org.jclouds.atmos.options.ListOptionsTest)
Starting test testToken(org.jclouds.atmos.options.ListOptionsTest)
[pool-5-thread-2] Test testNoMeta(org.jclouds.atmos.options.ListOptionsTest) succeeded: 0ms
Test suite progress: tests succeeded: 41, failed: 0, skipped: 0.
Starting test testTokenStatic(org.jclouds.atmos.options.ListOptionsTest)
[pool-5-thread-4] Test testTokenStatic(org.jclouds.atmos.options.ListOptionsTest) succeeded: 0ms
Test suite progress: tests succeeded: 42, failed: 0, skipped: 0.
Starting test test(org.jclouds.atmos.functions.ParseSystemMetadataFromHeadersTest)
[pool-5-thread-5] Test testToken(org.jclouds.atmos.options.ListOptionsTest) succeeded: 1ms
Test suite progress: tests succeeded: 43, failed: 0, skipped: 0.
Starting test test(org.jclouds.atmos.functions.ParseUserMetadataFromHeadersTest)
Starting test testMetaStatic(org.jclouds.atmos.options.ListOptionsTest)
[pool-5-thread-3] Test testMetaStatic(org.jclouds.atmos.options.ListOptionsTest) succeeded: 0ms
Test suite progress: tests succeeded: 44, failed: 0, skipped: 0.
[pool-5-thread-4] Test test(org.jclouds.atmos.functions.ParseUserMetadataFromHeadersTest) succeeded: 3ms
Test suite progress: tests succeeded: 45, failed: 0, skipped: 0.
[pool-5-thread-2] Test test(org.jclouds.atmos.functions.ParseSystemMetadataFromHeadersTest) succeeded: 4ms
Test suite progress: tests succeeded: 46, failed: 0, skipped: 0.
[pool-5-thread-1] Test testContextImpl(org.jclouds.atmos.blobstore.config.AtmosBlobStoreModuleTest) succeeded: 92ms
Test suite progress: tests succeeded: 47, failed: 0, skipped: 0.
Starting test testSignString(org.jclouds.atmos.filters.SignRequestTest)
Starting test testFilter(org.jclouds.atmos.filters.SignRequestTest)
Starting test testFilterReplacesOldValues(org.jclouds.atmos.filters.SignRequestTest)
Starting test testCreateStringToSign(org.jclouds.atmos.filters.SignRequestTest)
[pool-5-thread-5] Test testCreateStringToSign(org.jclouds.atmos.filters.SignRequestTest) succeeded: 3ms
Test suite progress: tests succeeded: 48, failed: 0, skipped: 0.
[pool-5-thread-4] Test testFilterReplacesOldValues(org.jclouds.atmos.filters.SignRequestTest) succeeded: 107ms
Test suite progress: tests succeeded: 49, failed: 0, skipped: 0.
[pool-5-thread-2] Test testSignString(org.jclouds.atmos.filters.SignRequestTest) succeeded: 109ms
Test suite progress: tests succeeded: 50, failed: 0, skipped: 0.
[pool-5-thread-3] Test testFilter(org.jclouds.atmos.filters.SignRequestTest) succeeded: 113ms
Test suite progress: tests succeeded: 51, failed: 0, skipped: 0.
Starting test testSignGetBlob(org.jclouds.atmos.blobstore.AtmosBlobRequestSignerTest)
Starting test testSignPutBlob(org.jclouds.atmos.blobstore.AtmosBlobRequestSignerTest)
Starting test testSignRemoveBlob(org.jclouds.atmos.blobstore.AtmosBlobRequestSignerTest)
[pool-6-thread-1] Test testSignGetBlob(org.jclouds.atmos.blobstore.AtmosBlobRequestSignerTest) succeeded: 5ms
Test suite progress: tests succeeded: 52, failed: 0, skipped: 0.
[pool-6-thread-3] Test testSignRemoveBlob(org.jclouds.atmos.blobstore.AtmosBlobRequestSignerTest) succeeded: 5ms
Test suite progress: tests succeeded: 53, failed: 0, skipped: 0.
[pool-6-thread-2] Test testSignPutBlob(org.jclouds.atmos.blobstore.AtmosBlobRequestSignerTest) succeeded: 5ms
Test suite progress: tests succeeded: 54, failed: 0, skipped: 0.
Starting test testWithToken(org.jclouds.atmos.functions.ParseDirectoryListFromContentAndHeadersTest)
Starting test testWithoutToken(org.jclouds.atmos.functions.ParseDirectoryListFromContentAndHeadersTest)
[pool-7-thread-2] Test testWithoutToken(org.jclouds.atmos.functions.ParseDirectoryListFromContentAndHeadersTest) succeeded: 20ms
Test suite progress: tests succeeded: 55, failed: 0, skipped: 0.
[pool-7-thread-1] Test testWithToken(org.jclouds.atmos.functions.ParseDirectoryListFromContentAndHeadersTest) succeeded: 20ms
Test suite progress: tests succeeded: 56, failed: 0, skipped: 0.
Starting test test(org.jclouds.atmos.functions.ParseObjectFromHeadersAndHttpContentTest)
[pool-8-thread-1] Test test(org.jclouds.atmos.functions.ParseObjectFromHeadersAndHttpContentTest) succeeded: 3ms
Test suite progress: tests succeeded: 57, failed: 0, skipped: 0.
Starting test testApplyInputStream(org.jclouds.atmos.xml.ErrorHandlerTest)
[pool-9-thread-1] Test testApplyInputStream(org.jclouds.atmos.xml.ErrorHandlerTest) succeeded: 1ms
Test suite progress: tests succeeded: 58, failed: 0, skipped: 0.
Starting test testApplyInputStreamBase(org.jclouds.atmos.xml.ListDirectoryResponseHandlerTest)
[pool-10-thread-1] Test testApplyInputStreamBase(org.jclouds.atmos.xml.ListDirectoryResponseHandlerTest) succeeded: 1ms
Test suite progress: tests succeeded: 59, failed: 0, skipped: 0.
Tests run: 59, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.084 sec

Results :

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

[INFO] 
[INFO] --- maven-bundle-plugin:2.3.7:bundle (default-bundle) @ atmos ---
[INFO] 
[INFO] --- maven-jar-plugin:2.4:test-jar (default) @ atmos ---
[INFO] Building jar: /private/tmp/jclouds/apis/atmos/target/atmos-1.6.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (integration) @ atmos ---
[INFO] Surefire report directory: /private/tmp/jclouds/apis/atmos/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@2678a212
Starting test testCreateDirectory(org.jclouds.atmos.AtmosClientLiveTest)
[TestNG] Test testCreateDirectory(org.jclouds.atmos.AtmosClientLiveTest) failed.
Test suite progress: tests succeeded: 0, failed: 1, skipped: 0.
Starting test testListDirectorys(org.jclouds.atmos.AtmosClientLiveTest)
[TestNG] Test testListDirectorys(org.jclouds.atmos.AtmosClientLiveTest) succeeded: 1089ms
Test suite progress: tests succeeded: 1, failed: 1, skipped: 0.
Starting test testListContainerMarker(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testListContainerMarker(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 2, failed: 1, skipped: 0.
Starting test testListContainerMaxResults(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testListContainerMaxResults(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 3, failed: 1, skipped: 0.
Starting test containerDoesntExist(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test containerDoesntExist(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 902ms
Test suite progress: tests succeeded: 4, failed: 1, skipped: 0.
Starting test containerExists(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test containerExists(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 2351ms
Test suite progress: tests succeeded: 5, failed: 1, skipped: 0.
Starting test deleteContainerIfEmpty(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test deleteContainerIfEmpty(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 5791ms
Test suite progress: tests succeeded: 6, failed: 1, skipped: 0.
Starting test deleteContainerWithContents(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test deleteContainerWithContents(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 7042ms
Test suite progress: tests succeeded: 7, failed: 1, skipped: 0.
Starting test testClearWhenContentsUnderPath(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testClearWhenContentsUnderPath(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 9618ms
Test suite progress: tests succeeded: 8, failed: 1, skipped: 0.
Starting test testDirectory(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 17841ms
Test suite progress: tests succeeded: 9, failed: 1, skipped: 0.
Starting test testListContainer(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 10302ms
Test suite progress: tests succeeded: 10, failed: 1, skipped: 0.
Starting test testListContainerPrefix(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testListContainerPrefix(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 14906ms
Test suite progress: tests succeeded: 11, failed: 1, skipped: 0.
Starting test testListRootUsesDelimiter(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testListRootUsesDelimiter(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 14635ms
Test suite progress: tests succeeded: 12, failed: 1, skipped: 0.
Starting test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 4039ms
Test suite progress: tests succeeded: 13, failed: 1, skipped: 0.
Starting test testWithDetails(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest)
[TestNG] Test testWithDetails(org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest) succeeded: 5231ms
Test suite progress: tests succeeded: 14, failed: 1, skipped: 0.
Starting test testPutObjectStream(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test testPutObjectStream(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) succeeded: 2127ms
Test suite progress: tests succeeded: 15, failed: 1, skipped: 0.
Starting test blobNotFound(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test blobNotFound(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) succeeded: 2202ms
Test suite progress: tests succeeded: 16, failed: 1, skipped: 0.
Starting test deleteObject(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test deleteObject(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) succeeded: 3542ms
Test suite progress: tests succeeded: 17, failed: 1, skipped: 0.
Starting test deleteObjectNoContainer(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test deleteObjectNoContainer(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) succeeded: 2927ms
Test suite progress: tests succeeded: 18, failed: 1, skipped: 0.
Starting test deleteObjectNotFound(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test deleteObjectNotFound(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) succeeded: 6184ms
Test suite progress: tests succeeded: 19, failed: 1, skipped: 0.
Starting test testBigFileGets(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test testBigFileGets(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 19, failed: 2, skipped: 0.
Starting test testCreateBlobWithExpiry(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test testCreateBlobWithExpiry(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 19, failed: 3, skipped: 0.
Starting test testPutFileParallel(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test testPutFileParallel(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 19, failed: 4, skipped: 0.
Starting test testPutObject(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) succeeded: 4813ms
Test suite progress: tests succeeded: 20, failed: 4, skipped: 0.
Starting test testPutObject(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) succeeded: 4560ms
Test suite progress: tests succeeded: 21, failed: 4, skipped: 0.
Starting test testPutObject(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest) succeeded: 4565ms
Test suite progress: tests succeeded: 22, failed: 4, skipped: 0.
Starting test testContains(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testContains(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 23, failed: 4, skipped: 0.
Starting test testEntrySet(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testEntrySet(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 22371ms
Test suite progress: tests succeeded: 24, failed: 4, skipped: 0.
Starting test testPut(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testPut(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 24, failed: 5, skipped: 0.
Starting test testPutAll(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testPutAll(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 6432ms
Test suite progress: tests succeeded: 25, failed: 5, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testPutMoreThanSingleListing(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 13505ms
Test suite progress: tests succeeded: 26, failed: 5, skipped: 0.
Starting test testRemove(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testRemove(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 8208ms
Test suite progress: tests succeeded: 27, failed: 5, skipped: 0.
Starting test testValues(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testValues(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 5179ms
Test suite progress: tests succeeded: 28, failed: 5, skipped: 0.
Starting test testClear(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testClear(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 5978ms
Test suite progress: tests succeeded: 29, failed: 5, skipped: 0.
Starting test testContainsKey(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testContainsKey(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 4679ms
Test suite progress: tests succeeded: 30, failed: 5, skipped: 0.
Starting test testDirectory(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 30, failed: 6, skipped: 0.
Starting test testIsEmpty(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testIsEmpty(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 4396ms
Test suite progress: tests succeeded: 31, failed: 6, skipped: 0.
Starting test testKeySet(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testKeySet(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 5057ms
Test suite progress: tests succeeded: 32, failed: 6, skipped: 0.
Starting test testListContainer(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest) succeeded: 2351ms
Test suite progress: tests succeeded: 33, failed: 6, skipped: 0.
Starting test testCopyUrl(org.jclouds.atmos.blobstore.integration.AtmosLiveTest)
[TestNG] Test testCopyUrl(org.jclouds.atmos.blobstore.integration.AtmosLiveTest) succeeded: 11785ms
Test suite progress: tests succeeded: 34, failed: 6, skipped: 0.
Starting test testSignGetUrl(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest)
[TestNG] Test testSignGetUrl(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest) succeeded: 5581ms
Test suite progress: tests succeeded: 35, failed: 6, skipped: 0.
Starting test testSignGetUrlOptions(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest)
[TestNG] Test testSignGetUrlOptions(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest) succeeded: 3994ms
Test suite progress: tests succeeded: 36, failed: 6, skipped: 0.
Starting test testSignGetUrlWithTime(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest)
[TestNG] Test testSignGetUrlWithTime(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest) skipped.
Test suite progress: tests succeeded: 36, failed: 6, skipped: 1.
Starting test testSignPutUrl(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest)
[TestNG] Test testSignPutUrl(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest) succeeded: 4813ms
Test suite progress: tests succeeded: 37, failed: 6, skipped: 1.
Starting test testSignPutUrlWithTime(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest)
[TestNG] Test testSignPutUrlWithTime(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest) skipped.
Test suite progress: tests succeeded: 37, failed: 6, skipped: 2.
Starting test testSignRemoveUrl(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest)
[TestNG] Test testSignRemoveUrl(org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest) succeeded: 5839ms
Test suite progress: tests succeeded: 38, failed: 6, skipped: 2.
Starting test testPublicAccess(org.jclouds.atmos.blobstore.integration.AtmosContainerLiveTest)
[TestNG] Test testPublicAccess(org.jclouds.atmos.blobstore.integration.AtmosContainerLiveTest) succeeded: 10168ms
Test suite progress: tests succeeded: 39, failed: 6, skipped: 2.
Starting test testEntrySet(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testEntrySet(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 25527ms
Test suite progress: tests succeeded: 40, failed: 6, skipped: 2.
Starting test testPutAll(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutAll(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 6828ms
Test suite progress: tests succeeded: 41, failed: 6, skipped: 2.
Starting test testPutAllBytes(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutAllBytes(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 6896ms
Test suite progress: tests succeeded: 42, failed: 6, skipped: 2.
Starting test testPutAllFiles(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutAllFiles(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 6280ms
Test suite progress: tests succeeded: 43, failed: 6, skipped: 2.
Starting test testPutAllStrings(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutAllStrings(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 8186ms
Test suite progress: tests succeeded: 44, failed: 6, skipped: 2.
Starting test testPutMoreThanSingleListing(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testPutMoreThanSingleListing(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 14269ms
Test suite progress: tests succeeded: 45, failed: 6, skipped: 2.
Starting test testRemove(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testRemove(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 8540ms
Test suite progress: tests succeeded: 46, failed: 6, skipped: 2.
Starting test testValues(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testValues(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 4916ms
Test suite progress: tests succeeded: 47, failed: 6, skipped: 2.
Starting test testClear(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testClear(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 5636ms
Test suite progress: tests succeeded: 48, failed: 6, skipped: 2.
Starting test testContainsKey(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testContainsKey(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 4670ms
Test suite progress: tests succeeded: 49, failed: 6, skipped: 2.
Starting test testDirectory(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 49, failed: 7, skipped: 2.
Starting test testIsEmpty(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testIsEmpty(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 4612ms
Test suite progress: tests succeeded: 50, failed: 7, skipped: 2.
Starting test testKeySet(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testKeySet(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 7260ms
Test suite progress: tests succeeded: 51, failed: 7, skipped: 2.
Starting test testListContainer(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest) succeeded: 2950ms
Test suite progress: tests succeeded: 52, failed: 7, skipped: 2.
Starting test containerDoesntExist(org.jclouds.atmos.blobstore.integration.AtmosServiceIntegrationLiveTest)
[TestNG] Test containerDoesntExist(org.jclouds.atmos.blobstore.integration.AtmosServiceIntegrationLiveTest) succeeded: 1196ms
Test suite progress: tests succeeded: 53, failed: 7, skipped: 2.
Starting test testAllLocations(org.jclouds.atmos.blobstore.integration.AtmosServiceIntegrationLiveTest)
[TestNG] Test testAllLocations(org.jclouds.atmos.blobstore.integration.AtmosServiceIntegrationLiveTest) succeeded: 6545ms
Test suite progress: tests succeeded: 54, failed: 7, skipped: 2.
Starting test testGetAssignableLocations(org.jclouds.atmos.blobstore.integration.AtmosServiceIntegrationLiveTest)
[TestNG] Test testGetAssignableLocations(org.jclouds.atmos.blobstore.integration.AtmosServiceIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 55, failed: 7, skipped: 2.
[TestNG] Test testListOptions(org.jclouds.atmos.AtmosClientLiveTest) skipped.
Test suite progress: tests succeeded: 55, failed: 7, skipped: 3.
Starting test testPublicAccessInNonDefaultLocation(org.jclouds.atmos.blobstore.integration.AtmosContainerLiveTest)
[TestNG] Test testPublicAccessInNonDefaultLocation(org.jclouds.atmos.blobstore.integration.AtmosContainerLiveTest) skipped.
Test suite progress: tests succeeded: 55, failed: 7, skipped: 4.
Starting test testPublicAccessInNonDefaultLocationWithBigBlob(org.jclouds.atmos.blobstore.integration.AtmosContainerLiveTest)
[TestNG] Test testPublicAccessInNonDefaultLocationWithBigBlob(org.jclouds.atmos.blobstore.integration.AtmosContainerLiveTest) skipped.
Test suite progress: tests succeeded: 55, failed: 7, skipped: 5.
[TestNG] Test testFileOperations(org.jclouds.atmos.AtmosClientLiveTest) skipped.
Test suite progress: tests succeeded: 55, failed: 7, skipped: 6.
Tests run: 68, Failures: 7, Errors: 0, Skipped: 6, Time elapsed: 604.225 sec <<< FAILURE!
testCreateDirectory(org.jclouds.atmos.AtmosClientLiveTest)  Time elapsed: 3.284 sec  <<< FAILURE!
org.jclouds.atmos.AtmosResponseException: command GET http://onlinestorage.ninefold.com/rest/namespace/On%20and%20On/ HTTP/1.1 failed with code 403, error: AtmosError [code=1032, message=There was a mismatch between the signature in the request and the signature computed by the server., stringSigned=GET
null
/rest/namespace/on%20and%20on/]
	at org.jclouds.atmos.handlers.ParseAtmosErrorFromXmlContent.handleError(ParseAtmosErrorFromXmlContent.java:109)
	at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:69)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:182)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:152)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.invoke(InvokeSyncToAsyncHttpMethod.java:133)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:99)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:60)
	at org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:159)
	at org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:126)
	at com.sun.proxy.$Proxy54.listDirectory(Unknown Source)
	at org.jclouds.atmos.AtmosClientLiveTest.testCreateDirectory(AtmosClientLiveTest.java:143)

testBigFileGets(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)  Time elapsed: 68.23 sec  <<< FAILURE!
java.util.concurrent.TimeoutException: get constitution, completed: 0/10, errors: 0, rate: 3000ms/op
	at org.jclouds.concurrent.FutureIterables.awaitCompletion(FutureIterables.java:148)
	at org.jclouds.blobstore.integration.internal.BaseBlobIntegrationTest.testBigFileGets(BaseBlobIntegrationTest.java:202)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testCreateBlobWithExpiry(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)  Time elapsed: 34.654 sec  <<< FAILURE!
java.lang.AssertionError: expires=null; expected=Sun Apr 28 14:34:20 PDT 2013
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest$7.run(BaseBlobStoreIntegrationTest.java:397)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.assertConsistencyAware(BaseBlobStoreIntegrationTest.java:228)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.assertConsistencyAware(BaseBlobStoreIntegrationTest.java:241)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.assertConsistencyAwareBlobExpiryMetadata(BaseBlobStoreIntegrationTest.java:392)
	at org.jclouds.blobstore.integration.internal.BaseBlobIntegrationTest.testCreateBlobWithExpiry(BaseBlobIntegrationTest.java:258)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testPutFileParallel(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest)  Time elapsed: 32.457 sec  <<< FAILURE!
java.util.concurrent.TimeoutException: putFileParallel, completed: 1/10, errors: 0, rate: 3000ms/op
	at org.jclouds.concurrent.FutureIterables.awaitCompletion(FutureIterables.java:148)
	at org.jclouds.blobstore.integration.internal.BaseBlobIntegrationTest.testPutFileParallel(BaseBlobIntegrationTest.java:165)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testPut(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)  Time elapsed: 7.442 sec  <<< FAILURE!
java.lang.NullPointerException: one
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:208)
	at org.jclouds.blobstore.integration.internal.BaseBlobMapIntegrationTest.getOneReturnsBearAndOldValueIsApple(BaseBlobMapIntegrationTest.java:179)
	at org.jclouds.blobstore.integration.internal.BaseBlobMapIntegrationTest.testPut(BaseBlobMapIntegrationTest.java:196)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testDirectory(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest)  Time elapsed: 30.003 sec  <<< FAILURE!
java.lang.AssertionError: 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]
	at org.testng.Assert.fail(Assert.java:94)
	at org.testng.Assert.assertEquals(Assert.java:710)
	at org.testng.Assert.assertEquals(Assert.java:688)
	at org.jclouds.blobstore.integration.internal.BaseMapIntegrationTest.testDirectory(BaseMapIntegrationTest.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testDirectory(org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest)  Time elapsed: 20.731 sec  <<< FAILURE!
java.lang.AssertionError: 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]
	at org.testng.Assert.fail(Assert.java:94)
	at org.testng.Assert.assertEquals(Assert.java:710)
	at org.testng.Assert.assertEquals(Assert.java:688)
	at org.jclouds.blobstore.integration.internal.BaseMapIntegrationTest.testDirectory(BaseMapIntegrationTest.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)


Results :

Failed tests:   testCreateDirectory(org.jclouds.atmos.AtmosClientLiveTest): command GET http://onlinestorage.ninefold.com/rest/namespace/On%20and%20On/ HTTP/1.1 failed with code 403, error: AtmosError [code=1032, message=There was a mismatch between the signature in the request and the signature computed by the server., stringSigned=GET(..)
  testBigFileGets(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest): get constitution, completed: 0/10, errors: 0, rate: 3000ms/op
  testCreateBlobWithExpiry(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest): expires=null; expected=Sun Apr 28 14:34:20 PDT 2013
  testPutFileParallel(org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest): putFileParallel, completed: 1/10, errors: 0, rate: 3000ms/op
  testPut(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest): one
  testDirectory(org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest): 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.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest): 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]

Tests run: 68, Failures: 7, Errors: 0, Skipped: 6

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10:12.874s
[INFO] Finished at: Sun Apr 28 14:39:36 PDT 2013
[INFO] Final Memory: 18M/125M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (integration) on project atmos: There are test failures.
[ERROR] 
[ERROR] Please refer to /private/tmp/jclouds/apis/atmos/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
