Something I've been doing as a spare-time activity is trying to specify
what filesystems are expected to do -using HDFS as the reference, being
rigorous about expectations (size of file in ls == size of data in file,
seek(0) always works, seek(-ve) always fails, close() idempotent), slightly
tuning the "other" filesystems to match HDFS, and writing the tests.

https://issues.apache.org/jira/browse/HADOOP-9361

There's a lot more lower-level tests than the JUnit 3.x
FileSystemContractTests -the tests are driven by XML declarations --here's
the ones for the hadoop-common filesystems
https://github.com/steveloughran/hadoop-trunk/tree/stevel/HADOOP-9361-filesystem-contract/hadoop-common-project/hadoop-common/src/test/resources/contract

Test that work with remote filesystems, object stores &c also rely on a
resource file test/resources/contract-test.xml. By marking that as
svnignore, & gitignore people can test against s3 without editing
core-site.xml and potentially accidentally checking in private credentials.
The tests are designed to downgrade to skips if the credentials are missing
-so you can see in the junit reports which were not run.


All the markdown documents are rendered on github
https://github.com/steveloughran/hadoop-trunk/tree/stevel/HADOOP-9361-filesystem-contract/hadoop-common-project/hadoop-common/src/site/markdown/filesystem

Can people review this?

The biggest change is in s3n, fixing of a recent regression Hadoop 2.4
triggering NPEs on a seek(0). This is why we need the new tests and the
patch ASAP. Even if the specification is incomplete, I'd like it in there
with the tests so that we can have stricter documentation that what's there
today -with tests to match

-steve

-- 
CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to 
which it is addressed and may contain information that is confidential, 
privileged and exempt from disclosure under applicable law. If the reader 
of this message is not the intended recipient, you are hereby notified that 
any printing, copying, dissemination, distribution, disclosure or 
forwarding of this communication is strictly prohibited. If you have 
received this communication in error, please contact the sender immediately 
and delete it from your system. Thank You.

Reply via email to