मैं कवरेज विश्लेषण के लिए एक्लेमा का उपयोग कर रहा हूं।EclEmma क्यों सिंक्रनाइज़ (MyClass.class) को कवर नहीं करता है?
मेरा जावा कोड एक सिंक्रनाइज़ (MyClass.class) {} ब्लॉक शामिल है।
ईक्लेमा का कहना है कि यह केवल आंशिक रूप से कवर किया गया है, हालांकि मुझे एक यूनिट परीक्षण मिला है जिसमें एक धागा का उपयोग हो जाता है और दूसरा धागा अवरुद्ध हो जाता है।
क्या एक्लेम्मा का उपयोग करके सिंक्रनाइज़ किए गए पूर्ण कवरेज को प्राप्त करना संभव है?
क्या मैं इस लाइन को पूर्ण कवरेज देने के लिए एक्लेमा को बताने के लिए कोड को एनोटेट कर सकता हूं?
तरह का संबंध रोजर
ऐसा लगता है कि आप सही हैं। मैंने कोशिश की: ऑब्जेक्ट सिंच = MyClass.class; सिंक्रनाइज़ (synch) {} लेकिन इससे मदद नहीं मिली, भले ही मेरे परीक्षण में एक थ्रेड प्रतीक्षा हो और दूसरा थ्रेड म्यूटेक्स प्राप्त कर रहा हो। –
मेरे अनुभव में, सिंक्रनाइज़ किए गए ब्लॉक में ऑब्जेक्ट मॉनिटर पर इंतजार करने वाले कोड में 'सिंक्रनाइज़ किया गया' हरा होगा, और एक परीक्षण प्रतीक्षा थ्रेड को बाधित करता है। हालांकि, यह सामान्य स्थिति में यह सच है कि यह जानने के लिए मैंने कभी भी ईएमएमए इंस्ट्रूमेंटेशन में खोदने के लिए परेशान नहीं किया है। –
थोड़ा प्रयोग करने के बाद, अगर सिंक्रनाइज़ किए गए ब्लॉक सामान्य रूप से पूर्ण हो गए * और * अपवाद के कारण अचानक समाप्त हो गया, तो मैं 'सिंक्रनाइज़' लाइन का पूरा कवरेज प्राप्त करने में सक्षम था। –