Aaron Jacobs
05b4591414
buffer: split runtime.s into pre- and post-Go 1.8 files.
...
Go 1.8 renamed this function; cf. golang/go@87e48c5 .
2016-12-19 13:50:20 +11:00
Aaron Jacobs
641629d124
buffer: refactor to a form that won't require memclr.
...
Necessary because our evil memclr should go away.
Benchmarks:
benchmark old ns/op new ns/op delta
BenchmarkOutMessageReset/Single_buffer-12 4.94 4.95 +0.20%
BenchmarkOutMessageReset/Many_buffers-12 10.4 12.0 +15.38%
BenchmarkOutMessageGrowShrink/Single_buffer-12 42861 47666 +11.21%
BenchmarkOutMessageGrowShrink/Many_buffers-12 101896 100626 -1.25%
benchmark old MB/s new MB/s speedup
BenchmarkOutMessageReset/Single_buffer-12 4853.85 4851.64 1.00x
BenchmarkOutMessageReset/Many_buffers-12 2311.82 2006.72 0.87x
BenchmarkOutMessageGrowShrink/Single_buffer-12 24464.39 21998.19 0.90x
BenchmarkOutMessageGrowShrink/Many_buffers-12 10290.60 10420.48 1.01x
2016-12-19 13:20:08 +11:00
Aaron Jacobs
95e4d8b12e
conversions.go: use the new buffer API.
2016-12-19 13:17:49 +11:00
Aaron Jacobs
0cd689f560
buffer: simplify storage of the header.
2016-12-19 13:14:54 +11:00
Aaron Jacobs
d1ff915b0b
OutMessage.OutHeader
2016-12-19 13:14:54 +11:00
Aaron Jacobs
849f53b080
OutMessage.ShrinkTo
2016-12-19 13:14:54 +11:00
Aaron Jacobs
e03fa52bbf
OutMessage.Grow
2016-12-19 13:14:54 +11:00
Aaron Jacobs
d1ed507a5a
OutMessage.GrowNoZero
2016-12-19 13:14:54 +11:00
Aaron Jacobs
a7c1a1474a
buffer_test: fix build errors.
2016-12-19 13:14:54 +11:00
Aaron Jacobs
0a22738acf
OutMessage.Bytes
2016-12-19 13:14:21 +11:00
Aaron Jacobs
6f4af61734
buffer: consistently use 'm' for OutMessage receivers.
2016-12-19 13:14:21 +11:00
Aaron Jacobs
98a2b634bf
OutMessage.Reset
2016-12-19 13:14:21 +11:00
Aaron Jacobs
9eb5e0793f
buffer: define OutMessage's contents.
2016-12-19 13:14:21 +11:00
Aaron Jacobs
6e5247d16d
buffer_test: make use of the new API.
2016-12-19 13:14:21 +11:00
Aaron Jacobs
0f6db15c59
buffer: give OutMessage's public API a makeover.
...
Use int where appropriate, fix up documentation, and clarify. Delete the
implementation where it will soon need to change.
2016-12-19 13:14:21 +11:00
Aaron Jacobs
10bc0e766c
buffer_test: fix computation of the number of bytes cleared.
2016-12-19 13:14:05 +11:00
Aaron Jacobs
40b516328e
buffer: expand test coverage.
...
In preparation for changing the public API.
2016-12-19 12:40:00 +11:00
Aaron Jacobs
06b9c19b5e
TestOutMessageHeader
2016-12-19 12:38:58 +11:00
Aaron Jacobs
78a1450a77
TestOutMessageShrinkTo
2016-12-19 12:32:22 +11:00
Aaron Jacobs
39f1f7c489
TestOutMessageAppendString
2016-12-19 12:31:08 +11:00
Aaron Jacobs
c1af0dbdee
TestOutMessageAppend
2016-12-19 12:30:42 +11:00
Aaron Jacobs
e7b9860f41
buffer_test: expand the coverage of TestOutMessageGrow.
2016-12-19 12:26:59 +11:00
Aaron Jacobs
02e3f7895c
buffer_test: expand the coverage of TestOutMessageReset.
2016-12-19 12:20:27 +11:00
Aaron Jacobs
f250e46e83
buffer_test: add TODOs where more test coverage is necessary.
2016-12-19 12:16:51 +11:00
Aaron Jacobs
102b1184fb
buffer: add more tests.
...
At the level of the OutMessage API. In preparation for reworking its
implementation.
2016-12-19 11:46:53 +11:00
Aaron Jacobs
ad65849346
Add a test for OutMessage.Grow.
2016-12-19 11:17:33 +11:00
Aaron Jacobs
e329c0ef33
Add a test for OutMessage.Reset.
2016-12-19 11:17:33 +11:00
Aaron Jacobs
e1a6f0e2d8
.travis.yml: require a modern version of Go.
...
For the sake of testing.T.Run.
2016-12-19 11:12:29 +11:00
Aaron Jacobs
2bb2916cf4
buffer: add tests and benchmarks.
...
In preparation for considering a switch away from the evil use of
runtime's internal memclr function.
2016-12-19 10:36:05 +11:00
Aaron Jacobs
72fc9c96ca
Add a benchmark for growing and shrinking.
...
This should better stress memclr.
2016-12-19 10:35:20 +11:00
Aaron Jacobs
b87ffb528b
Fix a bug in BenchmarkOutMessageReset.
...
I misunderstood what was being zeroed. Only the header is.
2016-12-19 10:26:19 +11:00
Aaron Jacobs
d31e0a4eae
Add a test for memclr.
2016-12-19 10:19:29 +11:00
Aaron Jacobs
92e3407014
Add benchmarks for OutMessage.Reset.
2016-12-19 09:46:08 +11:00
Aaron Jacobs
3b8b4e55df
Add support for osxfuse 3.
...
There are a few changes to tests and documentation to reflect changes to
osxfuse behavior. All of them should probably be seen as backwards
compatible. The tests now test the osxfuse 3 behavior, and for this
reason we should consider killing osxfuse 2 support after some time.
Closes #18 .
Closes #19 .
2016-10-16 09:14:47 +01:00
Aaron Jacobs
a067b22c1d
Fix issues around statfs(2) changes with osxfuse 3.
...
Tested on OS X 10.11.6 (15G1004) with osxfuse 3.5.2.
2016-10-16 09:12:42 +01:00
Aaron Jacobs
b2c3396382
Update state around "close without msyc" behavior on OS X.
2016-10-16 08:56:51 +01:00
Aaron Jacobs
d66bad8705
Unexport osxfuse-related code.
2016-10-16 08:56:48 +01:00
Aaron Jacobs
8b5caee575
Unexport OSXFUSEPaths.
2016-10-16 08:56:44 +01:00
Aaron Jacobs
f1e482d155
Move osxfuse-specific config into mount_darwin.go.
2016-10-16 08:56:40 +01:00
Aaron Jacobs
fc5bd98d65
Don't allow configurability for osxfuse paths.
...
There's no need to complicate the API. If osxfuse makes a
backwards-incompatible change again, we can add support for it.
2016-10-16 08:56:34 +01:00
Nemanja Zbiljić
eadfaa0742
Support OSXFUSE 3.x, fall back to 2.x if needed
...
Also supports custom bundled OSXFUSE installs.
2016-09-25 18:07:29 +02:00
Aaron Jacobs
0b9db0a706
fuse: improve debug logging, including more inode and name info.
...
To aid in debugging GoogleCloudPlatform/gcsfuse#170 .
2016-05-16 10:07:28 +10:00
Aaron Jacobs
652a72aae2
Return better errors from Mount, instead of dumping them to stderr.
...
For googlecloudplatform/gcsfuse#161 .
2016-02-29 02:49:50 +00:00
Aaron Jacobs
2c0c70f477
Kill off silly fusermount screen scraping.
2016-02-29 02:47:56 +00:00
Aaron Jacobs
2e4cd6720b
Add integration tests for mounting.
...
In particular TestNonEmptyMountPoint, which is currently failing on
Linux due to the poor error handling we inherited from bazil.org/fuse.
2016-02-29 02:45:24 +00:00
Aaron Jacobs
3da7af8c88
Restore TestNonEmptyMountPoint for Linux.
...
I had forgotten that we explicitly handle the "mount point doesn't
exist" case, so that wasn't tickling what I had hoped in fusermount.
2016-02-29 13:44:02 +11:00
Aaron Jacobs
035636830f
Switch to a test that can pass on OS X, too.
...
It appears osxfuse is happy to mount over a non-empty directory.
2016-02-29 13:41:38 +11:00
Aaron Jacobs
8b7833ba01
TestNonEmptyMountPoint: clean up in the event of a successful mount.
2016-02-29 13:40:25 +11:00
Aaron Jacobs
38175a2e8b
Fix minimalFS on OS X.
2016-02-29 13:38:01 +11:00
Aaron Jacobs
3d61726401
TestNonEmptyMountPoint
2016-02-29 02:36:18 +00:00