]> git.saurik.com Git - apple/security.git/blame - RegressionTests/SecAtomicFile/SecAtomicFile.cpp
Security-59754.80.3.tar.gz
[apple/security.git] / RegressionTests / SecAtomicFile / SecAtomicFile.cpp
CommitLineData
866f8763
A
1//
2// Copyright 2017 Apple. All rights reserved.
3//
4
5#include "AtomicFile.h"
6#include <err.h>
7
8#if 0
9static void
10fill_disk(const char *path)
11{
12 int fd = ::open(path, O_CREAT|O_RDWR, 0600);
13 if (fd < 0)
14 errx(1, "failed to create fill file");
15
16 uint8 buffer[1024] = {};
17 ::memset(reinterpret_cast<void *>(buffer), 0x77, sizeof(buffer));
18
19 for (unsigned count = 0; count < 1000; count++) {
20 if (::write(fd, buffer, sizeof(buffer)) != sizeof(buffer)) {
21 warn("write fill file failed");
22 break;
23 }
24 }
25 if (close(fd) < 0)
26 warn("close fill file failed");
27}
28#endif
29
30int
31main(int argc, char **argv)
32{
33 int fail = 0;
34
35 if (argc != 2)
36 errx(1, "argc != 2");
37
38 try {
39 AtomicFile file(argv[1]);
40
41 RefPointer<AtomicTempFile> temp = file.write();
42
43 unsigned count = 0;
44 uint8 buffer[1024] = {};
45 ::memset(reinterpret_cast<void *>(buffer), 0xff, sizeof(buffer));
46
47 for (count = 0; count < 1000; count++) {
48 temp->write(AtomicFile::FromEnd, 0, buffer, sizeof(buffer));
49 }
50
51 temp->commit();
52 temp = NULL;
53 } catch (...) {
54 fail = 1;
55 }
56 if (fail)
57 errx(1, "failed to create new file");
58 return 0;
59}
60
61
62