// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc.  All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd

// Collects all the compiled protos into one file and compiles them to make sure
// the compiler is generating valid code.

#import "objectivec/Tests/AnyTest.pbobjc.m"
#import "objectivec/Tests/MapProto2Unittest.pbobjc.m"
#import "objectivec/Tests/MapUnittest.pbobjc.m"
#import "objectivec/Tests/Unittest.pbobjc.m"
#import "objectivec/Tests/UnittestCycle.pbobjc.m"
#import "objectivec/Tests/UnittestDeprecated.pbobjc.m"
#import "objectivec/Tests/UnittestDeprecatedFile.pbobjc.m"
#import "objectivec/Tests/UnittestImport.pbobjc.m"
#import "objectivec/Tests/UnittestImportPublic.pbobjc.m"
#import "objectivec/Tests/UnittestMset.pbobjc.m"
#import "objectivec/Tests/UnittestObjc.pbobjc.m"
#import "objectivec/Tests/UnittestObjcOptions.pbobjc.m"
#import "objectivec/Tests/UnittestObjcStartup.pbobjc.m"
#import "objectivec/Tests/UnittestPreserveUnknownEnum.pbobjc.m"
#import "objectivec/Tests/UnittestRuntimeProto2.pbobjc.m"
#import "objectivec/Tests/UnittestRuntimeProto3.pbobjc.m"

#import "objectivec/Tests/UnittestExtensionChainA.pbobjc.m"
#import "objectivec/Tests/UnittestExtensionChainB.pbobjc.m"
#import "objectivec/Tests/UnittestExtensionChainC.pbobjc.m"
#import "objectivec/Tests/UnittestExtensionChainD.pbobjc.m"
#import "objectivec/Tests/UnittestExtensionChainE.pbobjc.m"
// See GPBUnittestProtos2.m for for "UnittestExtensionChainF.pbobjc.m"
#import "objectivec/Tests/UnittestExtensionChainG.pbobjc.m"
