1// Licensed to the Apache Software Foundation (ASF) under one
2// or more contributor license agreements. See the NOTICE file
3// distributed with this work for additional information
4// regarding copyright ownership. The ASF licenses this file
5// to you under the Apache License, Version 2.0 (the
6// "License"); you may not use this file except in compliance
7// with the License. You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing,
12// software distributed under the License is distributed on an
13// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14// KIND, either express or implied. See the License for the
15// specific language governing permissions and limitations
16// under the License.
17
18#include <gtest/gtest.h>
19
20#include "parquet/api/io.h" // IWYU pragma: keep
21#include "parquet/api/reader.h" // IWYU pragma: keep
22#include "parquet/api/schema.h" // IWYU pragma: keep
23#include "parquet/api/writer.h" // IWYU pragma: keep
24
25TEST(TestPublicAPI, DoesNotIncludeThrift) {
26#ifdef _THRIFT_THRIFT_H_
27 FAIL() << "Thrift headers should not be in the public API";
28#endif
29}
30
31TEST(TestPublicAPI, DoesNotExportDCHECK) {
32#ifdef DCHECK
33 FAIL() << "parquet/util/logging.h should not be transitively included";
34#endif
35}
36
37TEST(TestPublicAPI, DoesNotIncludeZlib) {
38#ifdef ZLIB_H
39 FAIL() << "zlib.h should not be transitively included";
40#endif
41}
42
43PARQUET_NORETURN void ThrowsParquetException() {
44 throw parquet::ParquetException("This function throws");
45}
46
47TEST(TestPublicAPI, CanThrowParquetException) {
48 ASSERT_THROW(ThrowsParquetException(), parquet::ParquetException);
49}
50