mirror of
https://github.com/google/sandboxed-api.git
synced 2024-03-22 13:11:30 +08:00
minor changes
This commit is contained in:
parent
961441672f
commit
bcdda46857
|
@ -55,7 +55,7 @@ int main(int argc, char* argv[]) {
|
||||||
// Process jsonnet data.
|
// Process jsonnet data.
|
||||||
sapi::v::RemotePtr input_pointer(input.value());
|
sapi::v::RemotePtr input_pointer(input.value());
|
||||||
sapi::v::Int error;
|
sapi::v::Int error;
|
||||||
sapi::StatusOr<char *> output = api.c_jsonnet_evaluate_snippet(
|
sapi::StatusOr<char*> output = api.c_jsonnet_evaluate_snippet(
|
||||||
&vm_pointer, in_file_var.PtrBefore(), &input_pointer, error.PtrAfter());
|
&vm_pointer, in_file_var.PtrBefore(), &input_pointer, error.PtrAfter());
|
||||||
CHECK(output.ok() && !error.GetValue())
|
CHECK(output.ok() && !error.GetValue())
|
||||||
<< "Jsonnet code evaluation failed: " << output.status() << " "
|
<< "Jsonnet code evaluation failed: " << output.status() << " "
|
||||||
|
|
|
@ -1,3 +1,17 @@
|
||||||
|
// Copyright 2020 Google LLC
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
// This is a poorly written jsonnet file. Given to the formatter executable will be changed into a canonical jsonnet file form.
|
// This is a poorly written jsonnet file. Given to the formatter executable will be changed into a canonical jsonnet file form.
|
||||||
local b = import "somefile.libsonnet"; # comment
|
local b = import "somefile.libsonnet"; # comment
|
||||||
local a = import "differentfile.libsonnet"; // another comment in different style
|
local a = import "differentfile.libsonnet"; // another comment in different style
|
||||||
|
|
|
@ -1,3 +1,17 @@
|
||||||
|
// Copyright 2020 Google LLC
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
// This is a jsonnet code which evaluates to mutliple output files.
|
// This is a jsonnet code which evaluates to mutliple output files.
|
||||||
{
|
{
|
||||||
"first_file.json": {
|
"first_file.json": {
|
||||||
|
|
|
@ -1,3 +1,17 @@
|
||||||
|
// Copyright 2020 Google LLC
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
// This is a jsonnet code which evaluates to json file, which can be interpreted as YAML stream.
|
// This is a jsonnet code which evaluates to json file, which can be interpreted as YAML stream.
|
||||||
local
|
local
|
||||||
first_object = {
|
first_object = {
|
||||||
|
|
|
@ -51,7 +51,7 @@ class JsonnetSapiSandbox : public JsonnetSandbox {
|
||||||
std::string out_file_;
|
std::string out_file_;
|
||||||
};
|
};
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
google::InitGoogleLogging(argv[0]);
|
google::InitGoogleLogging(argv[0]);
|
||||||
gflags::ParseCommandLineFlags(&argc, &argv, true);
|
gflags::ParseCommandLineFlags(&argc, &argv, true);
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,8 @@
|
||||||
class JsonnetSapiSandbox : public JsonnetSandbox {
|
class JsonnetSapiSandbox : public JsonnetSandbox {
|
||||||
public:
|
public:
|
||||||
explicit JsonnetSapiSandbox(std::string in_file, std::string out_directory)
|
explicit JsonnetSapiSandbox(std::string in_file, std::string out_directory)
|
||||||
: in_file_(std::move(in_file)), out_directory_(std::move(out_directory)) {}
|
: in_file_(std::move(in_file)),
|
||||||
|
out_directory_(std::move(out_directory)) {}
|
||||||
|
|
||||||
// We need a slightly different policy than the default one
|
// We need a slightly different policy than the default one
|
||||||
std::unique_ptr<sandbox2::Policy> ModifyPolicy(
|
std::unique_ptr<sandbox2::Policy> ModifyPolicy(
|
||||||
|
@ -42,7 +43,8 @@ class JsonnetSapiSandbox : public JsonnetSandbox {
|
||||||
__NR_futex,
|
__NR_futex,
|
||||||
__NR_close,
|
__NR_close,
|
||||||
})
|
})
|
||||||
.AddDirectoryAt(sandbox2::file::CleanPath(&out_directory_[0]), "/output",
|
.AddDirectoryAt(sandbox2::file::CleanPath(&out_directory_[0]),
|
||||||
|
"/output",
|
||||||
/*is_ro=*/false)
|
/*is_ro=*/false)
|
||||||
.AddDirectoryAt(dirname(&in_file_[0]), "/input", true)
|
.AddDirectoryAt(dirname(&in_file_[0]), "/input", true)
|
||||||
.BuildOrDie();
|
.BuildOrDie();
|
||||||
|
@ -53,7 +55,7 @@ class JsonnetSapiSandbox : public JsonnetSandbox {
|
||||||
std::string out_directory_;
|
std::string out_directory_;
|
||||||
};
|
};
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
google::InitGoogleLogging(argv[0]);
|
google::InitGoogleLogging(argv[0]);
|
||||||
gflags::ParseCommandLineFlags(&argc, &argv, true);
|
gflags::ParseCommandLineFlags(&argc, &argv, true);
|
||||||
|
|
||||||
|
@ -111,7 +113,7 @@ int main(int argc, char* argv[]) {
|
||||||
<< success.value();
|
<< success.value();
|
||||||
|
|
||||||
// Clean up.
|
// Clean up.
|
||||||
sapi::StatusOr<char*> result =
|
sapi::StatusOr<char *> result =
|
||||||
api.c_jsonnet_realloc(&vm_pointer, &output_pointer, 0);
|
api.c_jsonnet_realloc(&vm_pointer, &output_pointer, 0);
|
||||||
CHECK(result.ok()) << "JsonnetVm realloc failed: " << result.status();
|
CHECK(result.ok()) << "JsonnetVm realloc failed: " << result.status();
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
#include "jsonnet_base_sandbox.h"
|
#include "jsonnet_base_sandbox.h"
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
google::InitGoogleLogging(argv[0]);
|
google::InitGoogleLogging(argv[0]);
|
||||||
gflags::ParseCommandLineFlags(&argc, &argv, true);
|
gflags::ParseCommandLineFlags(&argc, &argv, true);
|
||||||
|
|
||||||
|
@ -70,14 +70,14 @@ int main(int argc, char* argv[]) {
|
||||||
sapi::v::RemotePtr output_pointer(output.value());
|
sapi::v::RemotePtr output_pointer(output.value());
|
||||||
sapi::StatusOr<bool> success;
|
sapi::StatusOr<bool> success;
|
||||||
|
|
||||||
success = api.c_write_output_stream(&output_pointer,
|
success =
|
||||||
out_file_var.PtrBefore());
|
api.c_write_output_stream(&output_pointer, out_file_var.PtrBefore());
|
||||||
CHECK(success.ok() && success.value())
|
CHECK(success.ok() && success.value())
|
||||||
<< "Writing to output file failed " << success.status() << " "
|
<< "Writing to output file failed " << success.status() << " "
|
||||||
<< success.value();
|
<< success.value();
|
||||||
|
|
||||||
// Clean up.
|
// Clean up.
|
||||||
sapi::StatusOr<char*> result =
|
sapi::StatusOr<char *> result =
|
||||||
api.c_jsonnet_realloc(&vm_pointer, &output_pointer, 0);
|
api.c_jsonnet_realloc(&vm_pointer, &output_pointer, 0);
|
||||||
CHECK(result.ok()) << "JsonnetVm realloc failed: " << result.status();
|
CHECK(result.ok()) << "JsonnetVm realloc failed: " << result.status();
|
||||||
|
|
||||||
|
|
|
@ -12,17 +12,19 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <filesystem>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <streambuf>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
#include "gtest/gtest.h"
|
#include "gtest/gtest.h"
|
||||||
#include "jsonnet_base_sandbox.h"
|
#include "jsonnet_base_sandbox.h"
|
||||||
#include "jsonnet_sapi.sapi.h"
|
#include "jsonnet_sapi.sapi.h"
|
||||||
#include "sandboxed_api/util/flag.h"
|
#include "sandboxed_api/util/flag.h"
|
||||||
#include "sandboxed_api/util/status_matchers.h"
|
#include "sandboxed_api/util/status_matchers.h"
|
||||||
#include <filesystem>
|
|
||||||
#include <iostream>
|
|
||||||
#include <fstream>
|
|
||||||
#include <streambuf>
|
|
||||||
#include <string>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
class JsonnetTestHelper {
|
class JsonnetTestHelper {
|
||||||
protected:
|
protected:
|
||||||
|
@ -32,7 +34,8 @@ class JsonnetTestHelper {
|
||||||
void TestTearDown();
|
void TestTearDown();
|
||||||
|
|
||||||
void Read_input(char* filename);
|
void Read_input(char* filename);
|
||||||
void Evaluate_jsonnet_code(char* filename, Evaluation type, bool expected_correct);
|
void Evaluate_jsonnet_code(char* filename, Evaluation type,
|
||||||
|
bool expected_correct);
|
||||||
void Write_output(char* filename_or_directory, Evaluation type);
|
void Write_output(char* filename_or_directory, Evaluation type);
|
||||||
std::string Read_output(char* filename);
|
std::string Read_output(char* filename);
|
||||||
|
|
||||||
|
@ -45,5 +48,4 @@ class JsonnetTestHelper {
|
||||||
std::string input_filename_in_sandboxee;
|
std::string input_filename_in_sandboxee;
|
||||||
bool if_jsonnet_vm_was_used;
|
bool if_jsonnet_vm_was_used;
|
||||||
bool if_input_was_read;
|
bool if_input_was_read;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user