| // Copyright 2019 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "src/developer/cmd/tasks/setenv_task.h" | |
| #include <utility> | |
| #include <gtest/gtest.h> | |
| namespace { | |
| TEST(SetenvTask, Control) { | |
| cmd::Command command; | |
| command.Parse("setenv EXAMPLE_ENVIRON_VAR myTestValue"); | |
| cmd::SetenvTask task(nullptr); | |
| EXPECT_EQ(ZX_ERR_NEXT, task.Execute(std::move(command), nullptr)); | |
| EXPECT_STREQ("myTestValue", getenv("EXAMPLE_ENVIRON_VAR")); | |
| unsetenv("EXAMPLE_ENVIRON_VAR"); | |
| } | |
| TEST(SetenvTask, TooManyArgs) { | |
| cmd::Command command; | |
| command.Parse("setenv FOO BAR BAZ"); | |
| cmd::SetenvTask task(nullptr); | |
| EXPECT_EQ(ZX_ERR_NEXT, task.Execute(std::move(command), nullptr)); | |
| } | |
| TEST(SetenvTask, ContainsEquals) { | |
| cmd::Command command; | |
| command.Parse("setenv FOO=BAR BAZ"); | |
| cmd::SetenvTask task(nullptr); | |
| EXPECT_EQ(ZX_ERR_NEXT, task.Execute(std::move(command), nullptr)); | |
| EXPECT_EQ(nullptr, getenv("FOO")); | |
| EXPECT_EQ(nullptr, getenv("FOO=BAR")); | |
| } | |
| } // namespace |