Merge "Throw an errno exception when open BPF map failed"

This commit is contained in:
Nucca Chen
2021-08-03 08:38:42 +00:00
committed by Gerrit Code Review
2 changed files with 13 additions and 0 deletions

View File

@@ -42,6 +42,8 @@ static jint com_android_networkstack_tethering_BpfMap_bpfFdGet(JNIEnv *env, jobj
jint fd = bpf::bpfFdGet(pathname.c_str(), static_cast<unsigned>(mode));
if (fd < 0) jniThrowErrnoException(env, "bpfFdGet", errno);
return fd;
}

View File

@@ -388,4 +388,15 @@ public final class BpfMapTest {
assertEquals(OsConstants.E2BIG, expected.errno);
}
}
@Test
public void testOpenNonexistentMap() throws Exception {
try {
final BpfMap<TetherDownstream6Key, Tether6Value> nonexistentMap = new BpfMap<>(
"/sys/fs/bpf/tethering/nonexistent", BpfMap.BPF_F_RDWR,
TetherDownstream6Key.class, Tether6Value.class);
} catch (ErrnoException expected) {
assertEquals(OsConstants.ENOENT, expected.errno);
}
}
}