Clean up TODOs

PiperOrigin-RevId: 305592245
This commit is contained in:
Fabricio Voznika 2020-04-08 17:56:55 -07:00 committed by gVisor bot
parent 981a587476
commit 6dd5a1f3fe
13 changed files with 19 additions and 40 deletions

View File

@ -44,9 +44,6 @@ const (
// lookup.
cacheRevalidate = "revalidate"
// TODO(edahlgren/mpratt): support a tmpfs size limit.
// size = "size"
// Permissions that exceed modeMask will be rejected.
modeMask = 01777

View File

@ -682,7 +682,7 @@ func (fs *Filesystem) StatFSAt(ctx context.Context, rp *vfs.ResolvingPath) (linu
if err != nil {
return linux.Statfs{}, err
}
// TODO: actually implement statfs
// TODO(gvisor.dev/issue/1193): actually implement statfs.
return linux.Statfs{}, syserror.ENOSYS
}

View File

@ -184,7 +184,6 @@ func (t *Task) CanTrace(target *Task, attach bool) bool {
if targetCreds.PermittedCaps&^callerCreds.PermittedCaps != 0 {
return false
}
// TODO: Yama LSM
return true
}

View File

@ -497,7 +497,7 @@ type FilesystemImpl interface {
// Preconditions: vd.Mount().Filesystem().Impl() == this FilesystemImpl.
PrependPath(ctx context.Context, vfsroot, vd VirtualDentry, b *fspath.Builder) error
// TODO: inotify_add_watch()
// TODO(gvisor.dev/issue/1479): inotify_add_watch()
}
// PrependPathAtVFSRootError is returned by implementations of

View File

@ -233,9 +233,9 @@ func (vfs *VirtualFilesystem) MountAt(ctx context.Context, creds *auth.Credentia
}
vd.dentry.mu.Lock()
}
// TODO: Linux requires that either both the mount point and the mount root
// are directories, or neither are, and returns ENOTDIR if this is not the
// case.
// TODO(gvisor.dev/issue/1035): Linux requires that either both the mount
// point and the mount root are directories, or neither are, and returns
// ENOTDIR if this is not the case.
mntns := vd.mount.ns
mnt := newMount(vfs, fs, root, mntns, opts)
vfs.mounts.seq.BeginWrite()
@ -274,9 +274,9 @@ func (vfs *VirtualFilesystem) UmountAt(ctx context.Context, creds *auth.Credenti
}
}
// TODO(jamieliu): Linux special-cases umount of the caller's root, which
// we don't implement yet (we'll just fail it since the caller holds a
// reference on it).
// TODO(gvisor.dev/issue/1035): Linux special-cases umount of the caller's
// root, which we don't implement yet (we'll just fail it since the caller
// holds a reference on it).
vfs.mounts.seq.BeginWrite()
if opts.Flags&linux.MNT_DETACH == 0 {

View File

@ -55,7 +55,7 @@ func TestMountTableInsertLookup(t *testing.T) {
}
}
// TODO: concurrent lookup/insertion/removal
// TODO(gvisor.dev/issue/1035): concurrent lookup/insertion/removal.
// must be powers of 2
var benchNumMounts = []int{1 << 2, 1 << 5, 1 << 8}

View File

@ -272,9 +272,8 @@ func setupRootFS(spec *specs.Spec, conf *boot.Config) error {
root := spec.Root.Path
if !conf.TestOnlyAllowRunAsCurrentUserWithoutChroot {
// FIXME: runsc can't be re-executed without
// /proc, so we create a tmpfs mount, mount ./proc and ./root
// there, then move this mount to the root and after
// runsc can't be re-executed without /proc, so we create a tmpfs mount,
// mount ./proc and ./root there, then move this mount to the root and after
// setCapsAndCallSelf, runsc will chroot into /root.
//
// We need a directory to construct a new root and we know that

View File

@ -56,10 +56,6 @@ TEST(EpollTest, AllWritable) {
struct epoll_event result[kFDsPerEpoll];
ASSERT_THAT(RetryEINTR(epoll_wait)(epollfd.get(), result, kFDsPerEpoll, -1),
SyscallSucceedsWithValue(kFDsPerEpoll));
// TODO(edahlgren): Why do some tests check epoll_event::data, and others
// don't? Does Linux actually guarantee that, in any of these test cases,
// epoll_wait will necessarily write out the epoll_events in the order that
// they were registered?
for (int i = 0; i < kFDsPerEpoll; i++) {
ASSERT_EQ(result[i].events, EPOLLOUT);
}

View File

@ -87,6 +87,7 @@ class FileTest : public ::testing::Test {
ClosePipes();
}
protected:
std::string test_file_name_;
FileDescriptor test_file_fd_;

View File

@ -27,14 +27,7 @@ namespace testing {
namespace {
// This test is currently very rudimentary.
//
// TODO(edahlgren):
// * bad buffer states (EFAULT).
// * bad fds (wrong permission, wrong type of file, EBADF).
// * check offset is not incremented.
// * check for EOF.
// * writing to pipes, symlinks, special files.
// TODO(gvisor.dev/issue/2370): This test is currently very rudimentary.
class Pwrite64 : public ::testing::Test {
void SetUp() override {
name_ = NewTempAbsPath();

View File

@ -242,7 +242,7 @@ TEST_F(TuntapTest, InvalidReadWrite) {
TEST_F(TuntapTest, WriteToDownDevice) {
SKIP_IF(!ASSERT_NO_ERRNO_AND_VALUE(HaveCapability(CAP_NET_ADMIN)));
// FIXME: gVisor always creates enabled/up'd interfaces.
// FIXME(b/110961832): gVisor always creates enabled/up'd interfaces.
SKIP_IF(IsRunningOnGvisor());
FileDescriptor fd = ASSERT_NO_ERRNO_AND_VALUE(Open(kDevNetTun, O_RDWR));
@ -280,10 +280,11 @@ PosixErrorOr<FileDescriptor> OpenAndAttachTap(
&addr, sizeof(addr)));
if (!IsRunningOnGvisor()) {
// FIXME: gVisor doesn't support setting MAC address on interfaces yet.
// FIXME(b/110961832): gVisor doesn't support setting MAC address on
// interfaces yet.
RETURN_IF_ERRNO(LinkSetMacAddr(link->index, kMacA, sizeof(kMacA)));
// FIXME: gVisor always creates enabled/up'd interfaces.
// FIXME(b/110961832): gVisor always creates enabled/up'd interfaces.
RETURN_IF_ERRNO(LinkChangeFlags(link->index, IFF_UP, IFF_UP));
}

View File

@ -31,14 +31,8 @@ namespace gvisor {
namespace testing {
namespace {
// This test is currently very rudimentary.
//
// TODO(edahlgren):
// * bad buffer states (EFAULT).
// * bad fds (wrong permission, wrong type of file, EBADF).
// * check offset is incremented.
// * check for EOF.
// * writing to pipes, symlinks, special files.
// TODO(gvisor.dev/issue/2370): This test is currently very rudimentary.
class WriteTest : public ::testing::Test {
public:
ssize_t WriteBytes(int fd, int bytes) {

View File

@ -105,7 +105,6 @@ def _go_template_instance_impl(ctx):
executable = ctx.executable._tool,
)
# TODO: How can we get the dependencies out?
return struct(
files = depset([output]),
)