• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2016, Alliance for Open Media. All rights reserved
3  *
4  * This source code is subject to the terms of the BSD 2 Clause License and
5  * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6  * was not distributed with this source code in the LICENSE file, you can
7  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8  * Media Patent License 1.0 was not distributed with this source code in the
9  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10  */
11 
12 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
13 
14 #include "config/aom_config.h"
15 
16 #include "aom/aomdx.h"
17 #include "aom/aom_decoder.h"
18 
19 namespace {
20 
TEST(DecodeAPI,InvalidParams)21 TEST(DecodeAPI, InvalidParams) {
22   static aom_codec_iface_t *kCodecs[] = {
23 #if CONFIG_AV1_DECODER
24     aom_codec_av1_dx(),
25 #endif
26   };
27   uint8_t buf[1] = { 0 };
28   aom_codec_ctx_t dec;
29 
30   EXPECT_EQ(AOM_CODEC_INVALID_PARAM, aom_codec_dec_init(NULL, NULL, NULL, 0));
31   EXPECT_EQ(AOM_CODEC_INVALID_PARAM, aom_codec_dec_init(&dec, NULL, NULL, 0));
32   EXPECT_EQ(AOM_CODEC_INVALID_PARAM, aom_codec_decode(NULL, NULL, 0, NULL));
33   EXPECT_EQ(AOM_CODEC_INVALID_PARAM, aom_codec_decode(NULL, buf, 0, NULL));
34   EXPECT_EQ(AOM_CODEC_INVALID_PARAM,
35             aom_codec_decode(NULL, buf, sizeof(buf), NULL));
36   EXPECT_EQ(AOM_CODEC_INVALID_PARAM,
37             aom_codec_decode(NULL, NULL, sizeof(buf), NULL));
38   EXPECT_EQ(AOM_CODEC_INVALID_PARAM, aom_codec_destroy(NULL));
39   EXPECT_TRUE(aom_codec_error(NULL) != NULL);
40   EXPECT_TRUE(aom_codec_error_detail(NULL) == NULL);
41 
42   for (aom_codec_iface_t *iface : kCodecs) {
43     EXPECT_EQ(AOM_CODEC_INVALID_PARAM,
44               aom_codec_dec_init(NULL, iface, NULL, 0));
45 
46     EXPECT_EQ(AOM_CODEC_OK, aom_codec_dec_init(&dec, iface, NULL, 0));
47     EXPECT_EQ(AOM_CODEC_INVALID_PARAM,
48               aom_codec_decode(&dec, NULL, sizeof(buf), NULL));
49     EXPECT_EQ(AOM_CODEC_INVALID_PARAM, aom_codec_decode(&dec, buf, 0, NULL));
50 
51     EXPECT_EQ(AOM_CODEC_OK, aom_codec_destroy(&dec));
52   }
53 }
54 
55 }  // namespace
56