2011-08-26 13 views
7

हाल ही में, मुझे एक विरासत कार्यक्रम में यूनिट परीक्षण जोड़ने की आवश्यकता है।प्रोग्राम पर यूनिट टेस्ट जिसमें बहुत सारे मैक्रोज़

लेकिन यह में, वहाँ मैक्रो के बहुत सारे है, जैसे

#ifdef CONFIG_XXX 
do xxx 
#endif 

#ifdef CONFIG_YYY 
do yyy 
#endif 

वर्तमान में, सामान्य कार्यक्रम पथ इकाई परीक्षण द्वारा कवर किया जाता है। इसलिए, मैं अंदरूनी मैक्रो भागों (विभिन्न प्रोग्राम पथ) को कवर करने के लिए परीक्षण जोड़ना चाहता हूं।

ऐसा लगता है कि मुझे हर बार कुछ मैक्रोज़ के साथ अपने प्रोग्राम को संकलित और चलाने की आवश्यकता है, और प्रोग्राम पथ को कवर करने और संकलन के समय को कम करने के लिए मैक्रोज़ की संरचना को कैसे डिजाइन करना है, वास्तव में आसान नहीं है।

तो, मैं सभी हार्डवेयर संबंधित कोड को आर्क फ़ोल्डर में स्थानांतरित करने की योजना बना रहा हूं, अब मैक्रोज़ को सी फाइलों से मेकफ़ाइल में ले जाया गया था, लेकिन फिर भी यूटी कार्य प्राप्त करने के लिए कुछ मैक्रोज़ के साथ संकलन करने की आवश्यकता है।

क्या किसी को इस समस्या पर पहले अनुभव है?

आपकी टिप्पणियों के लिए धन्यवाद।

+1

क्या आप प्रत्येक मैक्रो को 'if (config.XXX) 'के साथ बदलने पर विचार कर सकते हैं? इस तरह, आप पुन: संकलित करने की आवश्यकता को खत्म करते हैं। –

+0

मैं मैक्रो और यदि कथन के अंतर के बाद से नहीं कर सकता। –

+0

मेरा मतलब यह है कि, इनपुट के रूप में 'कॉन्फ़िगरेशन' संरचना लेने के लिए अपने कोड को दोबारा दोहराएं। इस संरचना में ध्वज चर का एक सेट हो सकता है, प्रत्येक आपके मैक्रोज़ में से एक के अनुरूप होगा। –

उत्तर

2

मुझे लगता है कि आप केवल बाइनरी प्रोग्राम के कई संस्करण उत्पन्न करने के लिए जीसीसी-डी का उपयोग कर सकते हैं। संकलित करने के लिए उन्हें एक स्क्रिप्ट के साथ संकलित करें और चलाएं :)

+0

प्रश्न में: "ऐसा लगता है कि मुझे हर बार कुछ मैक्रोज़ के साथ अपने प्रोग्राम को संकलित और चलाने की आवश्यकता है", जीसीसी-डी का उपयोग केवल ऐसा करने के लिए किया जाता है। –

संबंधित मुद्दे