MAPREDUCE-3219. Reenabled and fixed bugs in the failing test TestDelegationToken. Contributed by Hitesh Shah.

svn merge -c r1197415 --ignore-ancestry ../../trunk/


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1197416 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Vinod Kumar Vavilapalli 2011-11-04 07:49:45 +00:00
parent 4cb237723e
commit 2ecdc2b8a2
2 changed files with 71 additions and 36 deletions

View File

@ -16,12 +16,15 @@ Release 0.23.1 - Unreleased
BUG FIXES
MAPREDUCE-3221. Reneabled the previously ignored test in TestSubmitJob
MAPREDUCE-3221. Reenabled the previously ignored test in TestSubmitJob
and fixed bugs in it. (Devaraj K via vinodkv)
MAPREDUCE-3215. Reneabled and fixed bugs in the failing test
MAPREDUCE-3215. Reenabled and fixed bugs in the failing test
TestNoJobSetupCleanup. (Hitesh Shah via vinodkv)
MAPREDUCE-3219. Reenabled and fixed bugs in the failing test
TestDelegationToken. (Hitesh Shah via vinodkv)
Release 0.23.0 - 2011-11-01
INCOMPATIBLE CHANGES

View File

@ -29,7 +29,6 @@ import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.SecretManager.InvalidToken;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.*;
@ -48,26 +47,27 @@ public class TestDelegationToken {
cluster = new MiniMRCluster(0,0,1,"file:///",1);
}
@SuppressWarnings("deprecation")
@Test
@Ignore
public void testDelegationToken() throws Exception {
JobClient client;
final JobClient client;
client = user1.doAs(new PrivilegedExceptionAction<JobClient>(){
@Override
public JobClient run() throws Exception {
return new JobClient(cluster.createJobConf());
}});
JobClient bobClient;
bobClient = user2.doAs(new PrivilegedExceptionAction<JobClient>(){
@Override
public JobClient run() throws Exception {
return new JobClient(cluster.createJobConf());
}});
}
});
Token<DelegationTokenIdentifier> token =
final JobClient bobClient;
bobClient = user2.doAs(new PrivilegedExceptionAction<JobClient>(){
@Override
public JobClient run() throws Exception {
return new JobClient(cluster.createJobConf());
}
});
final Token<DelegationTokenIdentifier> token =
client.getDelegationToken(new Text(user1.getUserName()));
DataInputBuffer inBuf = new DataInputBuffer();
@ -85,26 +85,58 @@ public class TestDelegationToken {
System.out.println("max time: " + maxTime);
assertTrue("createTime < current", createTime < currentTime);
assertTrue("current < maxTime", currentTime < maxTime);
client.renewDelegationToken(token);
client.renewDelegationToken(token);
try {
bobClient.renewDelegationToken(token);
Assert.fail("bob renew");
} catch (AccessControlException ace) {
// PASS
}
try {
bobClient.cancelDelegationToken(token);
Assert.fail("bob renew");
} catch (AccessControlException ace) {
// PASS
}
client.cancelDelegationToken(token);
try {
client.cancelDelegationToken(token);
Assert.fail("second alice cancel");
} catch (InvalidToken it) {
// PASS
}
// renew should work as user alice
user1.doAs(new PrivilegedExceptionAction<Void>() {
@Override
public Void run() throws Exception {
client.renewDelegationToken(token);
client.renewDelegationToken(token);
return null;
}
});
// bob should fail to renew
user2.doAs(new PrivilegedExceptionAction<Void>() {
@Override
public Void run() throws Exception {
try {
bobClient.renewDelegationToken(token);
Assert.fail("bob renew");
} catch (AccessControlException ace) {
// PASS
}
return null;
}
});
// bob should fail to cancel
user2.doAs(new PrivilegedExceptionAction<Void>() {
@Override
public Void run() throws Exception {
try {
bobClient.cancelDelegationToken(token);
Assert.fail("bob cancel");
} catch (AccessControlException ace) {
// PASS
}
return null;
}
});
// alice should be able to cancel but only cancel once
user1.doAs(new PrivilegedExceptionAction<Void>() {
@Override
public Void run() throws Exception {
client.cancelDelegationToken(token);
try {
client.cancelDelegationToken(token);
Assert.fail("second alice cancel");
} catch (InvalidToken it) {
// PASS
}
return null;
}
});
}
}