/*====================================================================*\ FILE : TestMechanism.c PURPOSE : Test some ProAsmcomp routines connected with Pro/Mech HISTORY.. DATE BUILD AUTHOR MODIFICATIONS 10-Aug-98 I-01-16 Akula $$1 Created 25-Aug-98 I-01-17 Akula $$2 Fix TEST_CALL_REPORT fot ProAsmcompIsPlaced 20-Oct-98 I-01-23 Alexey $$3 Fix several TEST_CALL_REPORTs. Change ProTestAsmcompMachanismMenu to ProTestAsmcompMechanismMenu 04-Nov-98 I-01-26 Alexey $$4 Replaced some ProMenu functions by ProUtilMenu 15-Dec-98 I-01-28 agsh $$5 correct TEST_CALL_REPORT for functions whith bugs 01-Jun-99 I-03-11 mka $$6 Delete unused variable \*====================================================================*/ /*--------------------------------------------------------------------*\ Pro/TOOLKIT includes \*--------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*--------------------------------------------------------------------*\ Application includes \*--------------------------------------------------------------------*/ #include "TestError.h" #include "TestFiletypes.h" #include "UtilFiles.h" #include "UtilMessage.h" #include "UtilString.h" #include "UtilNames.h" #include "UtilCollect.h" #include "UtilTree.h" #include "UtilMenu.h" /*--------------------------------------------------------------------*\ Application macros \*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*\ Application data types \*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*\ Application global/external data \*--------------------------------------------------------------------*/ ProError ProUtilAsmcompSelect(ProAsmcomp *p_asmcomp); /*====================================================================*\ Function : ProTestAsmcompSetPlaced() Purpose : Menu callback \*====================================================================*/ int ProTestAsmcompSetPlaced (ProAppData data, int dummy) { ProError err; ProAsmcomp asmcomp; ProBoolean p_is_placed; static ProUtilMenuButtons placed_type[] = { {"TkAsmcompSetPlaced", 0, TEST_CALL_PRO_MENU_DELETE}, {"Placed", PRO_B_TRUE, 0 }, {"Unplaced", PRO_B_FALSE, 0 }, {"",0,0} }; err = ProUtilAsmcompSelect(&asmcomp); if (err != PRO_TK_NO_ERROR) return (0); err = ProUtilMenuIntValueSelect(placed_type, (int *)&p_is_placed); if (err != PRO_TK_NO_ERROR) return (0); err = ProAsmcompSetPlaced (&asmcomp, p_is_placed); TEST_CALL_REPORT("ProAsmcompSetPlaced()", "ProTestAsmcompSetPlaced()", err, err != PRO_TK_NO_ERROR ); return (0); } /*====================================================================*\ Function : ProTestAsmcompSelectPath() Purpose : Select comp and get path \*====================================================================*/ ProError ProTestAsmcompSelectPath ( ProAsmcomppath* asmcomppath) { ProSelection *p_sel; ProError status; int n_sel; status = ProSelect("prt_or_asm", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel); TEST_CALL_REPORT("ProSelect()", "ProTestAsmcompSelectPath()", status, status != PRO_TK_NO_ERROR); if (status != PRO_TK_NO_ERROR) return (status); status = ProSelectionAsmcomppathGet(p_sel[0], asmcomppath); TEST_CALL_REPORT("ProSelectionAsmcomppathGet()", "ProTestAsmcompSelectPath()", status, status != PRO_TK_NO_ERROR); return (PRO_TK_NO_ERROR); } /*====================================================================*\ Function : ProTestAsmcompMakeUniqueSubas() Purpose : Menu callback \*====================================================================*/ int ProTestAsmcompMakeUniqueSubas (ProAppData data, int dummy) { ProError err; ProAsmcomppath asmcomppath; err = ProTestAsmcompSelectPath (&asmcomppath); if (err != PRO_TK_NO_ERROR) return (0); err = ProAsmcompMakeUniqueSubasm (&asmcomppath); TEST_CALL_REPORT("ProAsmcompMakeUniqueSubasm()", "ProTestAsmcompMakeUniqueSubas()", err, err != PRO_TK_NO_ERROR ); return (0); } /*====================================================================*\ Function : ProTestAsmcompRmvUniqueSubas() Purpose : Menu callback \*====================================================================*/ int ProTestAsmcompRmvUniqueSubas (ProAppData data, int dummy) { ProError err; ProAsmcomppath asmcomppath; err = ProTestAsmcompSelectPath (&asmcomppath); if (err != PRO_TK_NO_ERROR) return (0); /* bug in the function ProAsmcompRmvUniqueSubasm() */ err = ProAsmcompRmvUniqueSubasm (&asmcomppath); TEST_CALL_REPORT("ProAsmcompRmvUniqueSubasm()", "ProTestAsmcompRmvUniqueSubas()", err, 0 ); return (0); } /*====================================================================*\ Function : ProTestAsmcompPlacedInfoCollect() Purpose : Menu callback \*====================================================================*/ int ProTestAsmcompPlacedInfoCollect (ProAppData data, int dummy) { ProError err; ProAssembly c_asm; ProAsmcomp *asm_comps; int n_asm_comps = 0, i; FILE * qcr_place_info; ProBool is_plcd = PRO_B_TRUE; ProMdlType mdl_type; ProName mdl_name; ProCharName mdl_char_name; err = ProMdlCurrentGet ((ProMdl*)&c_asm); TEST_CALL_REPORT("ProMdelCurrentGet()", "ProTestAsmcompPlacedInfoCollect()", err, err != PRO_TK_NO_ERROR ); if (err !=PRO_TK_NO_ERROR) return (0); err = ProUtilCollectAsmcomp (c_asm, &asm_comps); if (err !=PRO_TK_NO_ERROR) return (0); err = ProArraySizeGet ((ProArray)asm_comps, &n_asm_comps); TEST_CALL_REPORT("ProArraySizeGet()", "ProTestAsmcompPlacedInfoCollect()", err, err != PRO_TK_NO_ERROR ); if (err !=PRO_TK_NO_ERROR) return (0); qcr_place_info = fopen ("comp_plcd.info", "w+t"); if (qcr_place_info == NULL) return 0; for (i=0; i