load("//bazel:skia_rules.bzl", "skia_cc_library") package( default_applicable_licenses = ["//:license"], ) licenses(["notice"]) skia_cc_library( name = "tests", testonly = True, srcs = [ "ComparePixels.cpp", "CtsEnforcement.cpp", "Test.cpp", "TestHarness.cpp", ], hdrs = [ "ComparePixels.h", "CtsEnforcement.h", "Test.h", "TestHarness.h", "TestType.h", ], visibility = [ "//dm:__pkg__", ], deps = [ "//:core", "//tools:registry", "//tools/flags:cmd_flags", "//tools/timer", ], ) filegroup( name = "tests_hdrs", testonly = True, srcs = [ "CanvasStateHelpers.h", "CodecPriv.h", "CtsEnforcement.h", "FakeStreams.h", "FontScanner.h", "GainmapTestCommon.h", "GaneshTestUtils.h", "PathOpsCubicIntersectionTestData.h", "PathOpsDebug.h", "PathOpsExtendedTest.h", "PathOpsQuadIntersectionTestData.h", "PathOpsTSectDebug.h", "PathOpsTestCommon.h", "PathOpsThreadedCommon.h", "RecordTestUtils.h", "SubsetPath.h", "Test.h", "TestHarness.h", "TestType.h", ], visibility = ["//dm:__pkg__"], ) # Tests are bundled as filegroups because they are not explicitly linked. Symbols not directly # referrenced by DM are stripped by the linker. This can be avoided by using force_link=True, but # this is not supported on Mac. filegroup( name = "tests_sources", testonly = True, srcs = [ "AAClipTest.cpp", "AndroidCodecTest.cpp", "AnimatedImageTest.cpp", "AnnotationTest.cpp", "ArenaAllocTest.cpp", "AsADashTest.cpp", "AvifTest.cpp", "BadIcoTest.cpp", "BezierCurveTest.cpp", "BigImageTest.cpp", "BitmapCopyTest.cpp", "BitmapGetColorTest.cpp", "BitmapTest.cpp", "BitSetTest.cpp", "BlitMaskClip.cpp", "BlurTest.cpp", "BRDTest.cpp", "CachedDataTest.cpp", "CachedDecodingPixelRefTest.cpp", "CanvasStateHelpers.cpp", "CanvasStateHelpers.h", "CanvasStateTest.cpp", "CanvasTest.cpp", "CappedHairlinesTest.cpp", "CharToGlyphCache.cpp", "ChecksumTest.cpp", "ClipCubicTest.cpp", "ClipperTest.cpp", "ClipStackTest.cpp", "CodecAnimTest.cpp", "CodecExactReadTest.cpp", "CodecPartialTest.cpp", "CodecPriv.h", "CodecRecommendedTypeTest.cpp", "CodecTest.cpp", "ColorFilterTest.cpp", "ColorMatrixTest.cpp", "ColorPrivTest.cpp", "ColorSpaceTest.cpp", "ColorTest.cpp", "ConvertPixelsTest.cpp", "CoreBlittersTest.cpp", "CPUBackendTest.cpp", "CPUContextRecorderTest.cpp", "CubicChopTest.cpp", "CubicMapTest.cpp", "CubicRootsTest.cpp", "CullTestTest.cpp", "DashPathEffectTest.cpp", "DataRefTest.cpp", "DebugLayerManagerTest.cpp", "DequeTest.cpp", "DescriptorTest.cpp", "DeviceTest.cpp", "DirectMaskLimitTest.cpp", "DiscardableMemoryPoolTest.cpp", "DiscardableMemoryTest.cpp", "DrawBitmapRectTest.cpp", "DrawPathTest.cpp", "DrawTextTest.cpp", "EdgeTest.cpp", "EmptyPathTest.cpp", "EncodedInfoTest.cpp", "EncodeTest.cpp", "ExecutorTest.cpp", "ExifTest.cpp", "ExtendedSkColorTypeTests.cpp", "F16DrawTest.cpp", "F16StagesTest.cpp", "FakeStreams.h", "FillPathTest.cpp", "FilterResultTest.cpp", "FindCubicConvex180ChopsTest.cpp", "FitsInTest.cpp", "FlattenableFactoryToName.cpp", "FlattenableNameToFactory.cpp", "FlattenDrawableTest.cpp", # TODO(b/480952153): Figure out debug misalignment between GN and Bazel. In Bazel's fastbuild, # SK_DEBUG is not defined but assert() is still enabled, causing to_half(NaN) to crash. # "Float16Test.cpp", "FloatingPointTest.cpp", "FontHostStreamTest.cpp", "FontHostTest.cpp", "FontMgrFlags.cpp", "FontMgrTest.cpp", "FontNamesTest.cpp", "FontTest.cpp", "FrontBufferedStreamTest.cpp", "GainmapShaderTest.cpp", "GeometryTest.cpp", "GifTest.cpp", "GLBackendSurfaceTest.cpp", "GpuRectanizerTest.cpp", "GradientTest.cpp", "GrGlyphVectorTest.cpp", "HashTest.cpp", "HdrMetadataTest.cpp", "HighContrastFilterTest.cpp", "HSVRoundTripTest.cpp", "ICCTest.cpp", "ImageBitmapTest.cpp", "ImageCacheTest.cpp", "ImageFilterCacheTest.cpp", "ImageFilterTest.cpp", "ImageFrom565Bitmap.cpp", "ImageGeneratorOrientationTest.cpp", "ImageGeneratorTest.cpp", "ImageIsOpaqueTest.cpp", "ImageNewShaderTest.cpp", "ImageTest.cpp", "IncrTopoSortTest.cpp", "IndexedPngOverflowTest.cpp", "InfRectTest.cpp", "InsetConvexPolyTest.cpp", "InvalidIndexedPngTest.cpp", "IsClosedSingleContourTest.cpp", "JSONTest.cpp", "JpegxlTest.cpp", "LListTest.cpp", "LRUCacheTest.cpp", "M44Test.cpp", "MallocPixelRefTest.cpp", "MaskCacheTest.cpp", "MathTest.cpp", "MatrixProcsTest.cpp", "MatrixTest.cpp", "MD5Test.cpp", "MemoryTest.cpp", "MemsetTest.cpp", "MeshTest.cpp", "MessageBusTest.cpp", "MetaDataTest.cpp", "MipMapTest.cpp", "MultiPictureDocumentTest.cpp", "NdkDecodeTest.cpp", "NdkEncodeTest.cpp", "NonlinearBlendingTest.cpp", "OffsetSimplePolyTest.cpp", "OnceTest.cpp", "OSPathTest.cpp", "OverAlignedTest.cpp", "PaintTest.cpp", "ParametricStageTest.cpp", "ParseColorTest.cpp", "ParsePathTest.cpp", "PathBuilderTest.cpp", "PathCoverageTest.cpp", "PathDataTest.cpp", "PathMeasureTest.cpp", "PathRawShapesTest.cpp", "PathRawTest.cpp", "PathTest.cpp", "PDFDeflateWStreamTest.cpp", "PDFDocumentTest.cpp", "PDFGlyphsToUnicodeTest.cpp", "PDFJpegEmbedTest.cpp", "PDFMetadataAttributeTest.cpp", "PDFOpaqueSrcModeToSrcOverTest.cpp", "PDFPrimitivesTest.cpp", "PDFTaggedLinkTest.cpp", "PDFTaggedTableTest.cpp", "PDFTaggedTest.cpp", "PictureBBHTest.cpp", "PictureShaderTest.cpp", "PictureTest.cpp", "PixelRefTest.cpp", "PixelsRecTest.cpp", "Point3Test.cpp", "PointTest.cpp", "PolyUtilsTest.cpp", "PreChopPathCurvesTest.cpp", "PremulAlphaRoundTripTest.cpp", "ProtectedTest.cpp", "QuadRootsTest.cpp", "QuickRejectTest.cpp", "RandomTest.cpp", "RasterPipelineBuilderTest.cpp", "RasterPipelineCodeGeneratorTest.cpp", "RawPtrTest.cpp", "ReadPixelsTest.cpp", "RecordDrawTest.cpp", "RecorderTest.cpp", "RecordingXfermodeTest.cpp", "RecordOptsTest.cpp", "RecordPatternTest.cpp", "RecordTest.cpp", "RecordTestUtils.h", "RectTest.cpp", "RefCntTest.cpp", "RegionTest.cpp", "RoundRectTest.cpp", "RRectInPathTest.cpp", "RTreeTest.cpp", "RuntimeBlendTest.cpp", "SafeMathTest.cpp", "SamplingTest.cpp", "ScalarTest.cpp", "ScaleToSidesTest.cpp", "SerializationTest.cpp", "SerialProcsTest.cpp", "ShaderImageFilterTest.cpp", "ShaderOpacityTest.cpp", "ShaderTest.cpp", "ShadowTest.cpp", "SimplifyPaintTest.cpp", "SizeTest.cpp", "SkBase64Test.cpp", "SkBlockAllocatorTest.cpp", "Skbug5221.cpp", "Skbug6389.cpp", "SkColor4fTest.cpp", "SkColorSpaceXformStepsTest.cpp", "SkContainersTest.cpp", "SkDOMTest.cpp", "SkEnumBitMaskTest.cpp", "SkFontMetricsPrivTest.cpp", "SkGaussFilterTest.cpp", "SkGlyphTest.cpp", "SkImageTest.cpp", "SkMallocTest.cpp", "SkPathRangeIterTest.cpp", "SkRasterPipelineOptsTest.cpp", "SkRasterPipelineTest.cpp", "SkRemoteGlyphCacheTest.cpp", "SkResourceCacheTest.cpp", "SkRuntimeEffectTest.cpp", "SkSharedMutexTest.cpp", "SkSLDebugTracePlayerTest.cpp", "SkSLDebugTraceTest.cpp", "SkSLErrorTest.cpp", "SkSLES2ConformanceTest.cpp", "SkSLGLSLTestbed.cpp", "SkSLMemoryLayoutTest.cpp", "SkSLMetalTestbed.cpp", "SkSLPipelineStageTestbed.cpp", "SkSLSPIRVTestbed.cpp", "SkSLTest.cpp", "SkSLTypeTest.cpp", "SkSLWGSLTestbed.cpp", "SkSpanTest.cpp", "SkStrikeCacheTest.cpp", "SkStrikeTest.cpp", "SkStringViewTest.cpp", "SkTBlockListTest.cpp", "SkUTFTest.cpp", "SkVxTest.cpp", # TODO(b/480952153): SkXmpTest requires a new Bazel target for compiling and linking src/codec/SkXmp.cpp (which depends on //src/xml:xml). # "SkXmpTest.cpp", "SortTest.cpp", "SpecialImageTest.cpp", "SrcOverTest.cpp", "SRGBTest.cpp", "StreamTest.cpp", "StrikeForGPUTest.cpp", "StringTest.cpp", "StrokerTest.cpp", "StrokeTest.cpp", "SubsetPath.cpp", "SubsetPath.h", "SurfaceTest.cpp", "SVGDeviceTest.cpp", "SwizzlerTest.cpp", "TArrayTest.cpp", "TDPQueueTest.cpp", "TemplatesTest.cpp", "TestTest.cpp", "TextBlobTest.cpp", "TextureSizeTest.cpp", "Time.cpp", "TLazyTest.cpp", "TopoSortTest.cpp", "TraceMemoryDumpTest.cpp", "TracingTest.cpp", "TypefaceTest.cpp", "UnicodeTest.cpp", "UtilsTest.cpp", "VerticesTest.cpp", "VkDrawableTest.cpp", "VkHardwareBufferTest.cpp", "VkPreferredFeaturesTest.cpp", "VkPriorityExtensionTest.cpp", "VkProtectedContextTest.cpp", "VkYcbcrSamplerTest.cpp", "WebpTest.cpp", "WindowRectanglesTest.cpp", "WritePixelsTest.cpp", "Writer32Test.cpp", "YUVCacheTest.cpp", "YUVTest.cpp", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "pathops_tests_sources", testonly = True, srcs = [ "PathOpsAngleIdeas.cpp", "PathOpsAngleTest.cpp", "PathOpsAsWindingTest.cpp", "PathOpsBattles.cpp", "PathOpsBoundsTest.cpp", "PathOpsBuildUseTest.cpp", "PathOpsBuilderConicTest.cpp", "PathOpsBuilderTest.cpp", "PathOpsChalkboardTest.cpp", "PathOpsConicIntersectionTest.cpp", "PathOpsConicLineIntersectionTest.cpp", "PathOpsConicQuadIntersectionTest.cpp", "PathOpsCubicConicIntersectionTest.cpp", "PathOpsCubicIntersectionTest.cpp", "PathOpsCubicIntersectionTestData.cpp", "PathOpsCubicIntersectionTestData.h", "PathOpsCubicLineIntersectionIdeas.cpp", "PathOpsCubicLineIntersectionTest.cpp", "PathOpsCubicQuadIntersectionTest.cpp", "PathOpsCubicReduceOrderTest.cpp", "PathOpsDCubicTest.cpp", "PathOpsDLineTest.cpp", "PathOpsDPointTest.cpp", "PathOpsDRectTest.cpp", "PathOpsDVectorTest.cpp", "PathOpsDebug.cpp", "PathOpsDebug.h", "PathOpsExtendedTest.cpp", "PathOpsExtendedTest.h", "PathOpsFuzz763Test.cpp", "PathOpsInverseTest.cpp", "PathOpsIssue3651.cpp", "PathOpsLineIntersectionTest.cpp", "PathOpsLineParametetersTest.cpp", "PathOpsOpCircleThreadedTest.cpp", "PathOpsOpCubicThreadedTest.cpp", "PathOpsOpLoopThreadedTest.cpp", "PathOpsOpRectThreadedTest.cpp", "PathOpsOpTest.cpp", "PathOpsQuadIntersectionTest.cpp", "PathOpsQuadIntersectionTestData.cpp", "PathOpsQuadIntersectionTestData.h", "PathOpsQuadLineIntersectionTest.cpp", "PathOpsQuadLineIntersectionThreadedTest.cpp", "PathOpsQuadReduceOrderTest.cpp", "PathOpsSimplifyDegenerateThreadedTest.cpp", "PathOpsSimplifyFailTest.cpp", "PathOpsSimplifyQuadThreadedTest.cpp", "PathOpsSimplifyQuadralateralsThreadedTest.cpp", "PathOpsSimplifyRectThreadedTest.cpp", "PathOpsSimplifyTest.cpp", "PathOpsSimplifyTrianglesThreadedTest.cpp", "PathOpsSkpTest.cpp", "PathOpsTSectDebug.h", "PathOpsTestCommon.cpp", "PathOpsTestCommon.h", "PathOpsThreadedCommon.cpp", "PathOpsThreadedCommon.h", "PathOpsThreeWayTest.cpp", "PathOpsTigerTest.cpp", "PathOpsTightBoundsTest.cpp", "PathOpsTypesTest.cpp", "WangsFormulaTest.cpp", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "ganesh_tests_sources", testonly = True, srcs = [ "AdvancedBlendTest.cpp", "ApplyGammaTest.cpp", "AtlasOobTest.cpp", "BackendAllocationTest.cpp", "BackendSurfaceMutableStateTest.cpp", "BlendTest.cpp", "BulkRectTest.cpp", "ClearTest.cpp", "CompressedBackendAllocationTest.cpp", "CopySurfaceTest.cpp", "DMSAATest.cpp", "DashPathEffectTestGanesh.cpp", "DefaultPathRendererTest.cpp", "DeferredDisplayListTest.cpp", "DrawOpAtlasTest.cpp", "FloatingPointTextureTest.cpp", "GaneshContextRecorderTest.cpp", "GpuDrawPathTest.cpp", "GrAHardwareBufferTest.cpp", "GrClipStackTest.cpp", "GrContextAbandonTest.cpp", "GrContextFactoryTest.cpp", "GrContextOOM.cpp", "GrDDLImageTest.cpp", "GrFinishedFlushTest.cpp", "GrGpuBufferTest.cpp", "GrMemoryPoolTest.cpp", "GrMeshTest.cpp", "GrMipMappedTest.cpp", "GrOpListFlushTest.cpp", "GrPipelineDynamicStateTest.cpp", "GrPorterDuffTest.cpp", "GrQuadBufferTest.cpp", "GrQuadCropTest.cpp", "GrRenderTaskClusterTest.cpp", "GrStyledShapeTest.cpp", "GrSubmittedFlushTest.cpp", "GrSurfaceResolveTest.cpp", "GrSurfaceTest.cpp", "GrTextBlobTest.cpp", "GrTextureMipMapInvalidationTest.cpp", "GrThreadSafeCacheTest.cpp", "GrUniqueProxyTest.cpp", "LazyProxyTest.cpp", "LazyStencilAttachmentTest.cpp", "MatrixColorFilterTest.cpp", "OpChainTest.cpp", "PathRendererCacheTests.cpp", "PinnedImageTest.cpp", "PrimitiveProcessorTest.cpp", "ProcessorTest.cpp", # TODO(b/480952153): ProgramsTest requires static initializers # (SK_ALLOW_STATIC_GLOBAL_INITIALIZERS = 1) to register fragment processor factories, # which is not configured under Bazel. # "ProgramsTest.cpp", "PromiseImageTest.cpp", "ProxyConversionTest.cpp", "ProxyRefTest.cpp", "ProxyTest.cpp", "ReadWritePixelsGpuTest.cpp", "RepeatedClippedBlurTest.cpp", "ResourceAllocatorTest.cpp", "ResourceCacheTest.cpp", "SRGBReadWritePixelsTest.cpp", "SaveLayerOriginTest.cpp", "SkSLCross.cpp", "Skbug12214.cpp", "Skbug6653.cpp", "SlugTest.cpp", "SmallPathRendererTest.cpp", "SrcSrcOverBatchTest.cpp", "StencilClearTest.cpp", "SurfaceDrawContextTest.cpp", "SurfaceSemaphoreTest.cpp", "TextBlobCacheTest.cpp", "TextureOpTest.cpp", "TextureProxyTest.cpp", "TextureStripAtlasManagerTest.cpp", "TransferPixelsTest.cpp", "TriangulatingPathRendererTests.cpp", "VkBackendSurfaceTest.cpp", "VkWrapTests.cpp", "WrappedSurfaceCopyOnWriteTest.cpp", "crbug_500172224.cpp", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "ganesh_test_utils", testonly = True, srcs = [ "ganesh/GaneshTestUtils.cpp", "ganesh/GaneshTestUtils.h", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "ganesh_gl_tests_sources", testonly = True, srcs = [ "EGLImageTest.cpp", "GrGLExtensionsTest.cpp", "RectangleTextureTest.cpp", "TextureBindingsResetTest.cpp", ], visibility = ["//dm:__pkg__"], ) # Metal test .cc files are actually .mm files. Targets building these files in a # skia_cc_binary or skia_cc_library need to pass the "-x objective-c++" and "-fobjc-arc" flags. filegroup( name = "ganesh_metal_tests_sources", testonly = True, srcs = [ "MtlBackendAllocationTest.cc", "MtlCopySurfaceTest.cc", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "graphite_tests_sources", testonly = True, srcs = [ "graphite/AHardwareBufferTest.cpp", # TODO(b/480952153): BackendTextureTest.cpp requires Vulkan headers which aren't configured under Bazel. # "graphite/BackendTextureTest.cpp", "graphite/BoundsManagerTest.cpp", "graphite/BufferManagerTest.cpp", "graphite/CacheBudgetTest.cpp", "graphite/CacheKeyTest.cpp", "graphite/ComputeTest.cpp", "graphite/crbug_513836996.cpp", "graphite/DeviceTest.cpp", "graphite/DrawAtlasTest.cpp", "graphite/GraphiteContextRecorderTest.cpp", "graphite/GraphitePromiseImageTest.cpp", "graphite/GraphiteResourceCacheTest.cpp", "graphite/GraphiteYUVAPromiseImageTest.cpp", "graphite/ImageOriginTest.cpp", "graphite/ImageProviderTest.cpp", "graphite/ImageShaderTest.cpp", "graphite/ImageWrapTextureMipmapsTest.cpp", "graphite/InnerFillTest.cpp", "graphite/IntersectionTreeTest.cpp", "graphite/KeyTest.cpp", "graphite/MultisampleTest.cpp", "graphite/MutableImagesTest.cpp", "graphite/NotifyInUseTest.cpp", "graphite/PersistentPipelineStorageTest.cpp", "graphite/PipelineCallbackTest.cpp", "graphite/PipelineDataCacheTest.cpp", "graphite/ProxyCacheTest.cpp", "graphite/ReadWritePixelsGraphiteTest.cpp", "graphite/RecorderTest.cpp", "graphite/RecordingOrderTest.cpp", "graphite/RecordingSurfacesTest.cpp", "graphite/RectTest.cpp", "graphite/RTEffectTest.cpp", "graphite/ShapeTest.cpp", "graphite/SubmitWithFinishProcTest.cpp", "graphite/SwizzleTest.cpp", "graphite/TextureFormatTest.cpp", "graphite/TextureProxyTest.cpp", "graphite/TransformTest.cpp", "graphite/UniformManagerTest.cpp", "graphite/UniformOffsetCalculatorTest.cpp", "graphite/UpdateBackendTextureTest.cpp", "graphite/UploadBufferManagerTest.cpp", "graphite/VerticesPaddingTest.cpp", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "graphite_precompile_tests_sources", testonly = True, srcs = [ "graphite/precompile/AndroidPaintOptions.cpp", "graphite/precompile/AndroidPrecompileTest.cpp", "graphite/precompile/AndroidRuntimeEffectManager.cpp", "graphite/precompile/AndroidRuntimeEffectManager.h", "graphite/precompile/AndroidYCbCrPrecompileTest.cpp", "graphite/precompile/ChromePrecompileTest.cpp", "graphite/precompile/CombinationBuilderTest.cpp", "graphite/precompile/PaintOptionsBuilder.cpp", "graphite/precompile/PaintOptionsBuilder.h", "graphite/precompile/PaintParamsKeyTest.cpp", "graphite/precompile/PaintParamsTestUtils.cpp", "graphite/precompile/PaintParamsTestUtils.h", "graphite/precompile/PipelineManagerEarlyExit.cpp", "graphite/precompile/PipelineManagerThreaded.cpp", "graphite/precompile/PrecompileStatsTest.cpp", "graphite/precompile/PrecompileTestUtils.cpp", "graphite/precompile/PrecompileTestUtils.h", "graphite/precompile/ThreadedPrecompileTest.cpp", "graphite/precompile/UserdefinedStableKeyTest.cpp", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "graphite_sparse_strips_test_sources", testonly = True, srcs = [ "graphite/sparse_strips/ClipTest.cpp", "graphite/sparse_strips/CoverageTest.cpp", "graphite/sparse_strips/CoverageTestUtils.h", "graphite/sparse_strips/FlattenTest.cpp", "graphite/sparse_strips/LUTTest.cpp", "graphite/sparse_strips/Oracle.cpp", "graphite/sparse_strips/Oracle.h", "graphite/sparse_strips/OracleTest.cpp", "graphite/sparse_strips/OracleValidator.cpp", "graphite/sparse_strips/OracleValidator.h", "graphite/sparse_strips/PolylineTest.cpp", "graphite/sparse_strips/SkpValidator.cpp", "graphite/sparse_strips/SkpValidator.h", "graphite/sparse_strips/TileTestCases.cpp", "graphite/sparse_strips/TileTestCases.h", "graphite/sparse_strips/TilerTest.cpp", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "graphite_dawn_tests_sources", testonly = True, srcs = ["graphite/DawnBackendTextureTest.cpp"], visibility = ["//dm:__pkg__"], ) # Metal test .cc files are actually .mm files. Targets building these files in a # skia_cc_binary or skia_cc_library need to pass the "-x objective-c++" and "-fobjc-arc" flags. filegroup( name = "graphite_metal_tests_sources", testonly = True, srcs = ["graphite/MtlBackendTextureTest.cc"], visibility = ["//dm:__pkg__"], ) filegroup( name = "graphite_vulkan_tests_sources", testonly = True, srcs = [ "graphite/VulkanBackendTextureTest.cpp", "graphite/VulkanDstReadRenderpassReuseTest.cpp", ], visibility = ["//dm:__pkg__"], ) filegroup( name = "jpeg_gainmap_tests_sources", testonly = True, srcs = [ "JpegGainmapTest.cpp", "SkJpegXmpTest.cpp", ], visibility = ["//dm:__pkg__"], )