diff options
-rw-r--r-- | dom/media/gtest/Cargo.toml | 7 | ||||
-rw-r--r-- | dom/media/gtest/TestRust.cpp | 9 | ||||
-rw-r--r-- | dom/media/gtest/hello.rs | 6 | ||||
-rw-r--r-- | media/libstagefright/gtest/TestMP4Rust.cpp | 142 |
4 files changed, 0 insertions, 164 deletions
diff --git a/dom/media/gtest/Cargo.toml b/dom/media/gtest/Cargo.toml deleted file mode 100644 index a55f8fb68..000000000 --- a/dom/media/gtest/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "mp4parse-gtest" -version = "0.1.0" -authors = ["nobody@mozilla.org"] - -[lib] -path = "hello.rs" diff --git a/dom/media/gtest/TestRust.cpp b/dom/media/gtest/TestRust.cpp deleted file mode 100644 index 86d0e99b8..000000000 --- a/dom/media/gtest/TestRust.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include <stdint.h> -#include "gtest/gtest.h" - -extern "C" uint8_t* test_rust(); - -TEST(rust, CallFromCpp) { - auto greeting = test_rust(); - EXPECT_STREQ(reinterpret_cast<char*>(greeting), "hello from rust."); -} diff --git a/dom/media/gtest/hello.rs b/dom/media/gtest/hello.rs deleted file mode 100644 index cd111882a..000000000 --- a/dom/media/gtest/hello.rs +++ /dev/null @@ -1,6 +0,0 @@ -#[no_mangle] -pub extern fn test_rust() -> *const u8 { - // NB: rust &str aren't null terminated. - let greeting = "hello from rust.\0"; - greeting.as_ptr() -} diff --git a/media/libstagefright/gtest/TestMP4Rust.cpp b/media/libstagefright/gtest/TestMP4Rust.cpp deleted file mode 100644 index a338b5386..000000000 --- a/media/libstagefright/gtest/TestMP4Rust.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "gtest/gtest.h" -#include "mp4parse.h" - -#include <stdint.h> -#include <stdio.h> -#include <string.h> -#include <algorithm> -#include <vector> - -static intptr_t -error_reader(uint8_t* buffer, uintptr_t size, void* userdata) -{ - return -1; -} - -struct read_vector { - explicit read_vector(FILE* file, size_t length); - explicit read_vector(size_t length); - - size_t location; - std::vector<uint8_t> buffer; -}; - -read_vector::read_vector(FILE* file, size_t length) - : location(0) -{ - buffer.resize(length); - size_t read = fread(buffer.data(), sizeof(decltype(buffer)::value_type), - buffer.size(), file); - buffer.resize(read); -} - -read_vector::read_vector(size_t length) - : location(0) -{ - buffer.resize(length, 0); -} - -static intptr_t -vector_reader(uint8_t* buffer, uintptr_t size, void* userdata) -{ - if (!buffer || !userdata) { - return -1; - } - - auto source = reinterpret_cast<read_vector*>(userdata); - if (source->location > source->buffer.size()) { - return -1; - } - uintptr_t available = source->buffer.size() - source->location; - uintptr_t length = std::min(available, size); - memcpy(buffer, source->buffer.data() + source->location, length); - source->location += length; - return length; -} - -TEST(rust, MP4MetadataEmpty) -{ - mp4parse_error rv; - mp4parse_io io; - - // Shouldn't be able to read with no context. - rv = mp4parse_read(nullptr); - EXPECT_EQ(rv, MP4PARSE_ERROR_BADARG); - - // Shouldn't be able to wrap an mp4parse_io with null members. - io = { nullptr, nullptr }; - mp4parse_parser* context = mp4parse_new(&io); - EXPECT_EQ(context, nullptr); - - io = { nullptr, &io }; - context = mp4parse_new(&io); - EXPECT_EQ(context, nullptr); - - // FIXME: this should probably be accepted. - io = { error_reader, nullptr }; - context = mp4parse_new(&io); - EXPECT_EQ(context, nullptr); - - // Read method errors should propagate. - io = { error_reader, &io }; - context = mp4parse_new(&io); - ASSERT_NE(context, nullptr); - rv = mp4parse_read(context); - EXPECT_EQ(rv, MP4PARSE_ERROR_IO); - mp4parse_free(context); - - // Short buffers should fail. - read_vector buf(0); - io = { vector_reader, &buf }; - context = mp4parse_new(&io); - ASSERT_NE(context, nullptr); - rv = mp4parse_read(context); - EXPECT_EQ(rv, MP4PARSE_ERROR_INVALID); - mp4parse_free(context); - - buf.buffer.reserve(4097); - context = mp4parse_new(&io); - ASSERT_NE(context, nullptr); - rv = mp4parse_read(context); - EXPECT_EQ(rv, MP4PARSE_ERROR_INVALID); - mp4parse_free(context); - - // Empty buffers should fail. - buf.buffer.resize(4097, 0); - context = mp4parse_new(&io); - rv = mp4parse_read(context); - EXPECT_EQ(rv, MP4PARSE_ERROR_UNSUPPORTED); - mp4parse_free(context); -} - -TEST(rust, MP4Metadata) -{ - FILE* f = fopen("street.mp4", "rb"); - ASSERT_TRUE(f != nullptr); - // Read just the moov header to work around the parser - // treating mid-box eof as an error. - //read_vector reader = read_vector(f, 1061); - struct stat s; - ASSERT_EQ(0, fstat(fileno(f), &s)); - read_vector reader = read_vector(f, s.st_size); - fclose(f); - - mp4parse_io io = { vector_reader, &reader }; - mp4parse_parser* context = mp4parse_new(&io); - ASSERT_NE(nullptr, context); - - mp4parse_error rv = mp4parse_read(context); - EXPECT_EQ(MP4PARSE_OK, rv); - - uint32_t tracks = 0; - rv = mp4parse_get_track_count(context, &tracks); - EXPECT_EQ(MP4PARSE_OK, rv); - EXPECT_EQ(2U, tracks); - - mp4parse_free(context); -} |