Compare commits

..

No commits in common. "main" and "v0.1.1" have entirely different histories.
main ... v0.1.1

2 changed files with 1 additions and 23 deletions

View File

@ -87,7 +87,6 @@ Arguments:
- *Alternative*: use S3 object tags to store the EOCD size, fallback to 22 bytes otherwise. This could be
interesting if we want the backup tool to be able to import existing ZIPs (which could potentially have a comment),
but that is beyond the scope of the instructions.
- Only the `BackupClient` is tested, since by testing it, all other (internal) classes are functions are tested as well.
## Instructions
Create a backup utility that copies files to AWS S3. The utility should take a local directory with files and put it into AWS S3 in the form of one blob file. The reverse behavior should also be possible. We should be able to specify what backup we want to restore and where it should put the files on the local system. The utility should be able to restore one individual file from a backup.

View File

@ -6,7 +6,6 @@ import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.*
import java.io.File
import kotlin.io.path.*
import kotlin.random.Random
val bucketName = System.getenv("BACKUP_BUCKET") ?: "teamcity-executors-test-task"
@ -18,7 +17,7 @@ class BackupClientTest {
fun `before each`() =
runBlocking {
s3 = S3Client.fromEnvironment {}
backupClient = BackupClient(s3, bucketName, 1024 * 1024 * 10)
backupClient = BackupClient(s3, bucketName)
}
@AfterEach
@ -50,26 +49,6 @@ class BackupClientTest {
Path("_test/README.md").apply { writeText("# This is a test directory structure.") },
)
},
"single large file" to {
val bytes = ByteArray(1024 * 1024 * 32)
Random.nextBytes(bytes)
listOf(
Path("_test.txt").apply { writeBytes(bytes) },
)
},
"large directory structure" to {
val bytes1 = ByteArray(1024 * 1024 * 32)
val bytes2 = ByteArray(1024 * 1024 * 48)
listOf(
Path("_test").createDirectory(),
Path("_test/a.txt").apply { writeBytes(bytes1) },
Path("_test/folder").createDirectory(),
Path("_test/another-folder").createDirectory(),
Path("_test/another-folder/b").apply { writeText("This is file B\n") },
Path("_test/another-folder/c.txt").createFile(),
Path("_test/README.md").apply { writeBytes(bytes2) },
)
},
).map { (name, pathsGen) ->
DynamicTest.dynamicTest(name) {
val paths = pathsGen()