OK, let's keep SVN as is, I'll retrieve previous version, including PICShell modifications. I may add an SVN externals to retrieve PICShell source: when updating jallib, it checks updates in picshell SVN too. pichsell is then integrated and linked to jallib automatically. It can be handy. What do you think ?
Seb > Hi Seb, > Think it is OK to move to the new picshell, I wasn't aware that the > daily build process was depending on it, so therefore I did an undo of > the change set so at least buildbot can do its job > So the next step might be that you grab the latest picshell form SVN, > and try to run it with the modified jallib.py script, please let me > know if there are issues. > Albert > > > On 29 sep, 11:30, Sebastien Lelong <[email protected]> wrote: > > If you think it's ok, we can actually migrate to new PICShell version... > > > > Seb > > > > > > > > > Revision: 1361 > > > Author: [email protected] > > > Date: Tue Sep 29 01:44:14 2009 > > > Log: undo unittest changeset > > >http://code.google.com/p/jallib/source/detail?r=1361 > > > > > Deleted: > > > /trunk/test/unittest/18f14k50_adc.jalt > > > Modified: > > > /trunk/tools/jallib.py > > > > > ======================================= > > > --- /trunk/test/unittest/18f14k50_adc.jalt Mon Sep 28 16:41:33 > 2009 > > > +++ /dev/null > > > @@ -1,137 +0,0 @@ > > > --- Title: unittest to check ADC libs for 18f14k50 > > > --- Author: Albert Faber, Copyright (c) 2009, all rights reserved. > > > --- Adapted-by: > > > --- Compiler: >=2.4l > > > --- > > > --- This file is part of jallib (http://jallib.googlecode.com) > > > --- Released under the BSD license > > > (http://www.opensource.org/licenses/bsd-license.php) > > > --- > > > --- Description: this describes multiple unittests (a testcase), to > test > > > the > > > --- many different combination while setting up ADC. > > > --- > > > --- Notes: see jallib wiki page about unit testing to learn how to use > this > > > file > > > --- > > > - > > > -;@jallib section pic > > > -include 18f14k50 ;@no_debug > > > -pragma target OSC HS > > > -pragma target clock 20_000_000 > > > -pragma target WDT disabled > > > -enable_digital_io() > > > --- force analog pin/port to be output, so we can check they are > > > --- automagically set as input when configured (else it can be > optimized > > > away) > > > -porta_direction = all_output > > > -portb_direction = all_output > > > -portc_direction = all_output > > > - > > > - > > > -;@jallib section self_test > > > -include unittest > > > -var byte a = 120 > > > -test_byte(a) ;@assertEquals 120 test_test > > > - > > > - > > > -;@jallib testcase test_all_analog_pins > > > -;@jallib use pic > > > -;@jallib use self_test > > > -const byte ADC_NVREF = 0 > > > -const bit ADC_HIGH_RESOLUTION = false > > > -const word ADC_RSOURCE = 2_500 > > > -porta_direction = all_output > > > -portb_direction = all_output > > > -portc_direction = all_output > > > - > > > -include adc > > > -adc_init() > > > - > > > -set_analog_pin(0) > > > --- check pin on PORTA configured as inputs (not supported) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 0 test_porta_pin_an0_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an0_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 0 test_portb_pin_an0_input > > > - > > > - > > > -set_analog_pin(1) > > > --- check pin on PORTA configured as inputs (not supported) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 0 test_porta_pin_an01_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an01_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 0 test_portb_pin_an01_input > > > - > > > -set_analog_pin(2) > > > --- check pin on PORTA configured as inputs (not supported) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 0 test_porta_pin_an012_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an012_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 0 test_portb_pin_an012_input > > > - > > > - > > > -set_analog_pin(3) > > > --- check pin on PORTA configured as inputs (0b_0001_0000 => RA{4}) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an0123_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an0123_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 0 test_portb_pin_an0123_input > > > - > > > -set_analog_pin(4) > > > --- check pin on PORTC configured as inputs (0b_0000_0001 => RC{0} ) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an01234_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an01234_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 1 test_portb_pin_an01234_input > > > - > > > -set_analog_pin(5) > > > --- check pin on PORTC configured as inputs (0b_0000_0011 => > RC{1},RC{0} ) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an012345_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an012345_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 3 test_portb_pin_an012345_input > > > - > > > -set_analog_pin(6) > > > --- check pin on PORTC configured as inputs (0b_0000_0111 => > > > RC{2},RC{1},RC{0} ) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an0123456_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an0123456_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 7 test_portb_pin_an0123456_input > > > - > > > -set_analog_pin(7) > > > --- check pin on PORTC configured as inputs (0b_0000_1111 => > > > RC{3},RC{2},RC{1},RC{0} ) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an01234567_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an01234567_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 15 test_portb_pin_an01234567_input > > > - > > > -set_analog_pin(8) > > > --- check pin on PORTC configured as inputs (0b_0100_1111 => > > > RC(6),RC{3},RC{2},RC{1},RC{0} ) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an012345678_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an012345678_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 79 test_portb_pin_an012345678_input > > > - > > > -set_analog_pin(9) > > > --- check pin on PORTC configured as inputs (0b_1100_1111 => > > > RC{7},RC{6},RC{3},RC{2},RC{1},RC{0} ) > > > -asm nop > > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an0123456789_input > > > -asm nop > > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an0123456789_input > > > -asm nop > > > -test_byte(TRISC) ;@assertEquals 207 test_portb_pin_an0123456789_input > > > ======================================= > > > --- /trunk/tools/jallib.py Mon Sep 28 15:23:55 2009 > > > +++ /trunk/tools/jallib.py Tue Sep 29 01:44:14 2009 > > > @@ -47,6 +47,12 @@ > > > except ImportError: > > > has_subprocess = False > > > > > +try: > > > + import picshell.engine.core.PicEngine > > > + has_picshell = True > > > +except ImportError: > > > + has_picshell = False > > > + > > > > > ######### > > > # TOOLS # > > > @@ -756,6 +762,81 @@ > > > # JALAPI FUNC # > > > #-------------# > > > > > +def picshell_unittest(jalFileName,asmFileName,hexFileName): > > > + > > > + if not has_picshell: > > > + print >> sys.stderr, "Can't find PICShell libraries. Install > > > PICShell and adjust PYTHONPATH" > > > + sys.exit(255) > > > + > > > + # This piece of code is loosely based on PICShell implementation. > > > + # This is a quick & dirty assembling :) > > > + > > > + from picshell.parser.JalV2AsmParser import JalV2AsmParser > > > + from picshell.parser.AnnotationParser import AnnotationParser > > > + from picshell.engine.core.PicThreadEngine import PicThreadEngine > > > + from picshell.engine.core.PicEngine import PicEngine > > > + from picshell.engine.core.State import State > > > + from picshell.util.AssertUtil import AssertUtil > > > + > > > + from picshell.ui.UIManager import UIManager > > > + > > > + asmParser = JalV2AsmParser() > > > + wholeCode = asmParser.parseAsmFile(asmFileName, []) > > > + varTypeDict = JalV2AsmParser.buildVarTypeDict(wholeCode) > > > + > > > + parseRes = AnnotationParser.parse(file(jalFileName).read()) > > > + noDebugList = parseRes["noDebug"] > > > + debugList = parseRes["debug"] > > > + langParser = JalV2AsmParser() > > > + code = langParser.parseAsmFile(asmFileName, noDebugList,debugList) > > > + > > > + def unittest_callback(address,oracle): > > > + line = langParser.adrToLine[address] > > > + if line != None: > > > + txt = code[line].line > > > + if "@assertEquals" in txt: > > > + res = AssertUtil.parse(txt) > > > + var = res["var"].lower() > > > + label = res["label"] > > > + ref = res["ref"] > > > + if (langParser.varAdrMapping.has_key("v_"+str(var))): > > > + varAddr = langParser.varAdrMapping["v_"+str(var)] > > > + varType = type = varTypeDict.get(var,'bit') > > > + val = ui.varValue(varAddr,varType) > > > + res= varType+" "+var+" (@"+str(varAddr)+") = 0x%X > , > > > expected : 0x%X" %(val,ref) > > > + > > > + print label, > > > + if (ref == val) : > > > + oracle['success'] += 1 > > > + print ": OK" > > > + else : > > > + oracle['failure'] += 1 > > > + print ": FAIL, %s != %s" % (ref,val) > > > + else: > > > + oracle['notrun'] += 1 > > > + print "Can't run test '%s' because var '%s' can't > be > > > found" % (label,var) > > > + > > > + emu = PicEngine.newInstance(State(),hexFileName) > > > + # needed to access varValue function > > > + ui = UIManager() > > > + ui.emu = emu > > > + > > > + # success failure notrun > > > + oracle = {'success' : 0, 'failure' : 0, 'notrun' : 0} > > > + def run(to,emu,unittest_callback): > > > + current_address = emu.runNext() > > > + while current_address != to: > > > + #unit testing ? > > > + if unittest_callback != None: > > > + unittest_callback(current_address,oracle) > > > + current_address = emu.runNext() > > > + # last call on finishing address > > > + unittest_callback(current_address,oracle) > > > + > > > + run(emu.lastAddress,emu,unittest_callback) > > > + > > > + return oracle > > > + > > > def unittest(filename,verbose=False): > > > oracle = {'success' : None, 'failure' : None, 'notrun' : None} > > > content = file(filename).read().splitlines() > > > @@ -766,8 +847,6 @@ > > > fout = file(fnout,"w") > > > ferr = file(fnerr,"w") > > > status = > > > > > > do_compile([filename],exitonerror=False,clean=False,stdout=fout,stderr=ferr > ) > > > - fout.close() > > > - ferr.close() > > > except Exception,e: > > > print >> sys.stderr, "Error while compiling file '%s': %s" > % > > > (filename,e) > > > raise > > > @@ -778,30 +857,15 @@ > > > jal = filename > > > asm = filename.replace(".jal",".asm") > > > hex = filename.replace(".jal",".hex") > > > - > > > - > > > > ... > > > > meer lezen ยป > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jallib" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jallib?hl=en -~----------~----~----~----~------~----~------~--~---
