HADOOP-13178. TestShellBasedIdMapping.testStaticMapUpdate doesn't work on OS X (Kai Sasaki via aw)

This commit is contained in:
Allen Wittenauer 2016-05-21 10:00:36 -07:00
parent 39ec1515a2
commit d8c1fd1944
2 changed files with 12 additions and 6 deletions

View File

@ -85,7 +85,7 @@ public class ShellBasedIdMapping implements IdMappingServiceProvider {
private static final Pattern EMPTY_LINE = Pattern.compile("^\\s*$");
private static final Pattern COMMENT_LINE = Pattern.compile("^\\s*#.*$");
private static final Pattern MAPPING_LINE =
Pattern.compile("^(uid|gid)\\s+(\\d+)\\s+(\\d+)\\s*(#.*)?$");
Pattern.compile("^(uid|gid)\\s+(\\d+)\\s+(0|-?[1-9]\\d*)\\s*(#.*)?$");
final private long timeout;

View File

@ -148,8 +148,9 @@ public void testStaticMapUpdate() throws IOException {
// getUid()
incrIdMapping.clearNameMaps();
uidNameMap = refIdMapping.getUidNameMap();
{
BiMap.Entry<Integer, String> me = uidNameMap.entrySet().iterator().next();
for (BiMap.Entry<Integer, String> me : uidNameMap.entrySet()) {
tempStaticMapFile.delete();
incrIdMapping.clearNameMaps();
Integer id = me.getKey();
String name = me.getValue();
@ -174,8 +175,9 @@ public void testStaticMapUpdate() throws IOException {
// getGid()
incrIdMapping.clearNameMaps();
gidNameMap = refIdMapping.getGidNameMap();
{
BiMap.Entry<Integer, String> me = gidNameMap.entrySet().iterator().next();
for (BiMap.Entry<Integer, String> me : gidNameMap.entrySet()) {
tempStaticMapFile.delete();
incrIdMapping.clearNameMaps();
Integer id = me.getKey();
String name = me.getValue();
@ -189,7 +191,11 @@ public void testStaticMapUpdate() throws IOException {
Integer rid = id + 10000;
String smapStr = "gid " + rid + " " + id;
// Sleep a bit to avoid that two changes have the same modification time
try {Thread.sleep(1000);} catch (InterruptedException e) {}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// Do nothing
}
createStaticMapFile(tempStaticMapFile, smapStr);
// Now the id found for "name" should be the id specified by