اختبار :: إضعاف

اختبار أن كائنات الذاكرة المحررة كانت، في الواقع، تحريرها
التحميل الان

اختبار :: إضعاف الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • Perl Artistic License
  • السعر:
  • FREE
  • اسم الناشر:
  • Jeffrey Kegler
  • موقع ويب الناشر:
  • http://search.cpan.org/~jkegl/

اختبار :: إضعاف العلامات


اختبار :: إضعاف وصف

اختبار أن كائنات الذاكرة المحررة كانت، في الواقع، تحريرها يحدث تسرب الذاكرة عندما يتم تدمير بنية بيانات بيرل ولكن بعض محتويات هذا الهيكل لا يتم تحريرها. الذاكرة المتسربة هي النفقات العامة عديمة الفائدة. تسرب يمكن أن تؤثر بشكل كبير على أداء النظام. يمكن أن تتسبب أيضا في التقاط تطبيق بسبب عدم وجود الذاكرة. في بيرل، المراجع الدائرية هي سبب شائع لتسريب الذاكرة. تسمح المراجع الدائرية في بيرل، لكن هياكل البيانات التي تحتوي على مراجع دائرية ستسرب الذاكرة إلا إذا كان المبرمج يتخذ تدابير محددة لمنع التسريبات. وتشمل التدابير الوقائية إضعاف المراجع والترتيب لكسر الدورة المرجعية قبل تدمير الهيكل. عند استخدام المراجع الدائرية، من السهل أن يخطئ أو سوء المخطط بمخطط لمنع تسرب الذاكرة. من الصعب اكتشاف الأخطاء في هذا النوع في اختبار Suite.test :: Effecten هي وحدة Perl التي تسمح بالكشف السهل عن بيانات بيرل غير المصنفة. اختبار :: Pathen يسمح لك بفحص البيانات غير المكتملة، حتى البيانات التي عادة ما يتم التعرف عليها لا يمكن الوصول إليها ":: إضعاف يحرر هيكل الاختبار، ثم يبدو لمعرفة ما إذا كان أي من محتويات الهيكل لم يتم إلغاؤه بالفعل. بشكل افتراضي، اختبار :: إضعاف يحدد محتويات بنية البيانات عن طريق فحص المصفوفات والتجزئة، باتباع المراجع، وباتب متابعات مرتبطة بأكبرها الأساسي. اختبار :: إضعاف يفعل ذلك بشكل متكرر على العمق غير المحدود. قد يتعامل مع مراجع دائرية دون الذهاب إلى حلقات لا حصر لها. اختبار :: إضعاف لن يزور نفس كائن بيانات بيرل مرتين .Synopsis استخدام اختبار :: إضعاف QW (تسرب)؛ استخدم البيانات :: Dumper؛ استخدام الرياضيات :: bigint؛ استخدام الرياضيات :: bigfloat؛ استخدام الكارب استخدم English QW (-no_match_vars)؛ بلدي $ good_test = sub {بلدي $ obj1 = math :: bigint-> جديد ('42 ')؛ بلدي $ obj2 = math :: bigfloat-> جديد ('7.11')؛ ؛ } إذا (! تسرب ($ good_test)) {print "لا تسرب في اختبار 1 \ n" أو الكارب :: croak ("لا يمكن الطباعة إلى stdout: $ errno")؛ } آخر {print "كان هناك تسرب الذاكرة من اختبار 1! \ n" أو الكارب :: croak ("لا يمكن الطباعة إلى stdout: $ errno")؛ } بلدي $ bad_test = sub {صفيف $ = ؛ دفع @ {$ صفيف}، مجموعة $؛ صفيف $؛ } بلدي $ bad_destructor = sub {'أنا عديمة الفائدة}؛ بلدي اختبار $ = اختبار :: إضعاف :: تسرب ({منشئ => $ bad_test، destructor => $ bad_destructor،})؛ إذا ($ Tester) {my $ expreed_proberefs = اختبار $ -> expreed_proberefs ()؛ بلدي $ expreed_count = @ {$ expreed_proberefs}؛ طباعة "اختبار 2: D من المراجع الأصلية لم يتم تحرير \ n"، اختبار $ -> expreed_count ()، $ tester-> probe_count () أو carp :: croak ("لا يمكن الطباعة إلى stdout: $ errno") ؛ طباعة "هذه هي مراجع التحقيق إلى الكائنات غير المكتملة: \ n" أو الكارب :: CROAK ("لا يمكن الطباعة إلى Stdout: $ errno")؛ لبلدي IX (0 .. $ # {$ excreed_proberefs}) {print data :: dumper-> تفريغ (]، ) أو الكارب :: Croak ( "لا يمكن الطباعة إلى Stdout: $ errno")؛ } } متطلبات: perl.


اختبار :: إضعاف برامج ذات صلة