--instrumentation_filter से मैच किए गए नियम के टारगेट के लिए होती हैं. इनका इस्तेमाल कोड कवरेज का डेटा इकट्ठा करने के लिए किया जाता है. कवरेज डेटा कलेक्शन की सुविधा चालू होने पर, instrumented_files और metadata_files में मौजूद कंबाइंड पाथ वाला मेनिफ़ेस्ट, टेस्ट ऐक्शन को इनपुट के तौर पर पास किया जाता है. साथ ही, मेनिफ़ेस्ट का पाथ, एनवायरमेंट वैरिएबल COVERAGE_MANIFEST में नोट किया जाता है. मेटाडेटा फ़ाइलों को भी जांच की कार्रवाई के लिए इनपुट के तौर पर पास किया जाता है. हालांकि, सोर्स फ़ाइलों को पास नहीं किया जाता. जब किसी आस्पेक्ट के लागू करने वाले फ़ंक्शन से InstrumentedFilesInfo रिटर्न किया जाता है, तो बेस रूल टारगेट से मिले किसी भी InstrumentedFilesInfo को अनदेखा कर दिया जाता है.
सदस्य
instrumented_files
depset InstrumentedFilesInfo.instrumented_files
depset, File ऑब्जेक्ट का कलेक्शन होता है. ये ऑब्जेक्ट, इस टारगेट और इसकी डिपेंडेंसी के लिए इंस्ट्रुमेंट की गई सोर्स फ़ाइलों को दिखाते हैं.
metadata_files
depset InstrumentedFilesInfo.metadata_files
File ऑब्जेक्ट के depset, इस टारगेट और इसकी डिपेंडेंसी के लिए कवरेज मेटाडेटा फ़ाइलों को दिखाते हैं. इन फ़ाइलों में, कोड के एक्ज़ीक्यूट होने के बाद LCOV फ़ॉर्मैट में कवरेज आउटपुट जनरेट करने के लिए ज़रूरी अतिरिक्त जानकारी होती है. उदाहरण के लिए, .gcno फ़ाइलें तब जनरेट होती हैं, जब gcc को -ftest-coverage के साथ चलाया जाता है.
to_json
string InstrumentedFilesInfo.to_json()
---incompatible_struct_has_no_methods के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपके कोड, इस जल्द ही हटाए जाने वाले फ़ैसले से कोई दिक्कत नहीं होगी. स्ट्रक्ट पैरामीटर से JSON स्ट्रिंग बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (रिकर्सिव तरीके से) स्ट्रिंग, पूर्णांक, बूलियन, अन्य स्ट्रक्चर, इन टाइप की सूची या स्ट्रिंग कुंजियों और इन टाइप की वैल्यू वाली डिक्शनरी हों. स्ट्रिंग में मौजूद कोट और नई लाइनों को एस्केप किया जाता है. उदाहरण:
struct(key=123).to_json()
# {"key":123}
struct(key=True).to_json()
# {"key":true}
struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}
struct(key='text').to_json()
# {"key":"text"}
struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}
struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}
struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
अब काम नहीं करता: इसके बजाय, json.encode(x) या json.encode_indent(x) का इस्तेमाल करें. ये फ़ंक्शन, स्ट्रक्चर के अलावा अन्य वैल्यू के लिए काम करते हैं और स्ट्रक्चर फ़ील्ड नेमस्पेस को खराब नहीं करते.
to_proto
string InstrumentedFilesInfo.to_proto()
---incompatible_struct_has_no_methods के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपके कोड, इस जल्द ही हटाए जाने वाले फ़ैसले से कोई दिक्कत नहीं होगी. यह struct पैरामीटर से एक टेक्स्ट मैसेज बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (रिकर्सिव) स्ट्रिंग, पूर्णांक, बूलियन, अन्य स्ट्रक्चर या डिक्शनरी या इन टाइप की सूचियां हों. स्ट्रिंग में मौजूद कोट और नई लाइनों को एस्केप किया जाता है. स्ट्रक्ट कुंजियों को क्रम से लगाया जाता है. उदाहरण:
struct(key=123).to_proto()
# key: 123
struct(key=True).to_proto()
# key: true
struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3
struct(key='text').to_proto()
# key: "text"
struct(key=struct(inner_key='text')).to_proto()
# key {
# inner_key: "text"
# }
struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
# inner_key: 1
# }
# key {
# inner_key: 2
# }
struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
# inner_key {
# inner_inner_key: "text"
# }
# }
struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
# key: 4
# value: 3
# }
# foo: {
# key: 2
# value: 1
# }
अब यह तरीका काम नहीं करता: इसके बजाय, proto.encode_text(x) का इस्तेमाल करें.