121 lines
2.5 KiB
D
121 lines
2.5 KiB
D
// RUNNABLE_PHOBOS_TEST
|
|
// PERMUTE_ARGS:
|
|
// REQUIRED_ARGS:
|
|
|
|
import std.file;
|
|
import std.mmfile;
|
|
|
|
int main()
|
|
{
|
|
static string name = "test.tmp";
|
|
static string s = "abcd";
|
|
|
|
write(name, s);
|
|
|
|
{ scope MmFile mmf = new MmFile(name);
|
|
string p;
|
|
|
|
assert(mmf[0] == 'a');
|
|
p = cast(string)mmf[];
|
|
//printf("p.length = %d\n", p.length);
|
|
assert(p[1] == 'b');
|
|
p = cast(string)mmf[0 .. 4];
|
|
assert(p[2] == 'c');
|
|
}
|
|
|
|
{ scope MmFile mmf = new MmFile(name, MmFile.Mode.read, 0, null);
|
|
string p;
|
|
|
|
assert(mmf[0] == 'a');
|
|
p = cast(string)mmf[];
|
|
//printf("p.length = %d\n", p.length);
|
|
assert(mmf.length == 4);
|
|
assert(p[1] == 'b');
|
|
p = cast(string)mmf[0 .. 4];
|
|
assert(p[2] == 'c');
|
|
}
|
|
|
|
remove(name);
|
|
|
|
{ scope MmFile mmf = new MmFile(name, MmFile.Mode.readWriteNew, 4, null);
|
|
char[] p;
|
|
|
|
p = cast(char[])mmf[];
|
|
p[] = "1234";
|
|
mmf[3] = '5';
|
|
assert(mmf[2] == '3');
|
|
assert(mmf[3] == '5');
|
|
}
|
|
|
|
{ string p = cast(string)read(name);
|
|
|
|
assert(p[] == "1235");
|
|
}
|
|
|
|
{ scope MmFile mmf = new MmFile(name, MmFile.Mode.readWriteNew, 4, null);
|
|
char[] p;
|
|
|
|
p = cast(char[])mmf[];
|
|
p[] = "5678";
|
|
mmf[3] = '5';
|
|
assert(mmf[2] == '7');
|
|
assert(mmf[3] == '5');
|
|
assert(cast(string)mmf[] == "5675");
|
|
}
|
|
|
|
{ string p = cast(string)read(name);
|
|
|
|
assert(p[] == "5675");
|
|
}
|
|
|
|
{ scope MmFile mmf = new MmFile(name, MmFile.Mode.readWrite, 4, null);
|
|
char[] p;
|
|
|
|
p = cast(char[])mmf[];
|
|
assert(cast(char[])mmf[] == "5675");
|
|
p[] = "9102";
|
|
mmf[2] = '5';
|
|
assert(cast(string)mmf[] == "9152");
|
|
}
|
|
|
|
{ string p = cast(string)read(name);
|
|
|
|
assert(p[] == "9152");
|
|
}
|
|
|
|
remove(name);
|
|
|
|
{ scope MmFile mmf = new MmFile(name, MmFile.Mode.readWrite, 4, null);
|
|
char[] p;
|
|
|
|
p = cast(char[])mmf[];
|
|
p[] = "abcd";
|
|
mmf[2] = '5';
|
|
assert(cast(string)mmf[] == "ab5d");
|
|
}
|
|
|
|
{ string p = cast(string)read(name);
|
|
|
|
assert(p[] == "ab5d");
|
|
}
|
|
|
|
{ scope MmFile mmf = new MmFile(name, MmFile.Mode.readCopyOnWrite, 4, null);
|
|
char[] p;
|
|
|
|
p = cast(char[])mmf[];
|
|
assert(cast(string)mmf[] == "ab5d");
|
|
p[] = "9102";
|
|
mmf[2] = '5';
|
|
assert(cast(string)mmf[] == "9152");
|
|
}
|
|
|
|
{ string p = cast(string)read(name);
|
|
|
|
assert(p[] == "ab5d");
|
|
}
|
|
|
|
remove(name);
|
|
|
|
return 0;
|
|
}
|