xref: /aosp_15_r20/external/cronet/build/android/gyp/dex_test.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1#!/usr/bin/env python3
2# Copyright 2022 The Chromium Authors
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6import unittest
7
8import dex
9
10
11class DexTest(unittest.TestCase):
12  def testStdErrFilter(self):
13    # pylint: disable=line-too-long
14    output = """\
15some initial message
16Warning in ../../clank/third_party/google3/pg_confs/java_com_google_protobuf_lite_proguard.pgcfg:
17Rule matches the static final field `java.lang.String com.google.protobuf.BaseGeneratedExtensionRegistryLite.CONTAINING_TYPE_0`, which may have been inlined: -identifiernamestring class com.google.protobuf.*GeneratedExtensionRegistryLite {
18  static java.lang.String CONTAINING_TYPE_*;
19}
20Warning: some message
21Warning in gen/.../Foo.jar:Bar.class:
22  Type `libcore.io.Memory` was not found, it is required for default or static interface methods desugaring of `void Bar.a(long, byte)`
23Warning: Missing class com.google.android.apps.gsa.search.shared.service.proto.PublicStopClientEvent (referenced from: com.google.protobuf.GeneratedMessageLite$GeneratedExtension com.google.protobuf.BaseGeneratedExtensionRegistryLite.findLiteExtensionByNumber(com.google.protobuf.MessageLite, int))
24Missing class com.google.android.gms.feedback.ApplicationProperties (referenced from: com.google.protobuf.GeneratedMessageLite$GeneratedExtension com.google.protobuf.BaseGeneratedExtensionRegistryLite.findLiteExtensionByNumber(com.google.protobuf.MessageLite, int))
25"""
26    expected = """\
27some initial message
28Warning: some message
29Missing class com.google.android.gms.feedback.ApplicationProperties (referenced from: com.google.protobuf.GeneratedMessageLite$GeneratedExtension com.google.protobuf.BaseGeneratedExtensionRegistryLite.findLiteExtensionByNumber(com.google.protobuf.MessageLite, int))
30"""
31    # pylint: enable=line-too-long
32    filters = (dex.DEFAULT_IGNORE_WARNINGS +
33               ('CONTAINING_TYPE_', 'libcore', 'PublicStopClientEvent'))
34    filter_func = dex.CreateStderrFilter(filters)
35    self.assertEqual(filter_func(output), expected)
36
37    # Test no preamble, not filtered.
38    output = """Warning: hi"""
39    expected = output
40    self.assertEqual(filter_func(output), expected)
41
42    # Test no preamble, filtered
43    output = """\
44Warning: PublicStopClientEvent is hungry.
45"""
46    expected = ''
47    self.assertEqual(filter_func(output), expected)
48
49
50if __name__ == '__main__':
51  unittest.main()
52