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
-~----------~----~----~----~------~----~------~--~---

Reply via email to