blob: 3be4280c566ef045b7e2419adada9053e8fa262c [file] [log] [blame]
// 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 <assert.h>
#include <lib/zx/vmo.h>
#include <zircon/assert.h>
#include <zircon/sanitizer.h>
#include <string_view>
#include "debugdata.h"
int main(int argc, char* argv[]) {
if (argc != 2) {
return 1;
}
std::string_view mode = argv[1];
bool fail;
if (mode == "publish_data") {
fail = false;
} else if (mode == "publish_data_fail") {
fail = true;
} else {
return 1;
}
zx::vmo vmo;
ZX_ASSERT(zx::vmo::create(sizeof(kTestData), 0, &vmo) == ZX_OK);
ZX_ASSERT(vmo.write(kTestData, 0, sizeof(kTestData)) == ZX_OK);
ZX_ASSERT(vmo.set_property(ZX_PROP_NAME, kTestName, sizeof(kTestName)) == ZX_OK);
zx_handle_t token = __sanitizer_publish_data(kTestName, vmo.release());
ZX_ASSERT((token == ZX_HANDLE_INVALID) == fail);
return 0;
}