OpenCores
URL https://opencores.org/ocsvn/soc_maker/soc_maker/trunk

Subversion Repositories soc_maker

[/] [soc_maker/] [trunk/] [spec/] [component_spec.rb] - Diff between revs 5 and 8

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 5 Rev 8
Line 178... Line 178...
 
 
 
 
  it 'should iterate over all ports' do
  it 'should iterate over all ports' do
 
 
    SOCMaker::lib.clear
    SOCMaker::lib.clear
    ifc_s1 = SOCMaker::IfcSpc.new( "i1", "v1", 'ports' => { p1: 1, p2: 1, p3: 0 } )
    ifc_s1 = SOCMaker::IfcSpc.new( "i1", "v1", 'ports' => { p1:{dir:1}, p2:{dir:1}, p3:{dir:0} } )
    ifc_s2 = SOCMaker::IfcSpc.new( "i2", "v1", 'ports' => { x1: 1, x2: 0 } )
    ifc_s2 = SOCMaker::IfcSpc.new( "i2", "v1", 'ports' => { x1:{dir:1}, x2:{dir:0} } )
    SOCMaker::lib.add_ifc( ifc_s1 )
    SOCMaker::lib.add_ifc( ifc_s1 )
    SOCMaker::lib.add_ifc( ifc_s2 )
    SOCMaker::lib.add_ifc( ifc_s2 )
 
 
    p1 = SOCMaker::IfcPort.new( "p1", 1 )
    p1 = SOCMaker::IfcPort.new( "p1", 1 )
    p2 = SOCMaker::IfcPort.new( "p2", 2 )
    p2 = SOCMaker::IfcPort.new( "p2", 2 )
Line 201... Line 201...
    r_name    = []
    r_name    = []
    r_dir     = []
    r_dir     = []
    r_len     = []
    r_len     = []
    r_is_last = []
    r_is_last = []
 
 
    c.ports do |arg_name,arg_dir,arg_len,arg_is_last|
    c.ports do |arg_name,arg_dir,arg_len,arg_default,arg_is_last|
      r_name    << arg_name
      r_name    << arg_name
      r_dir     << arg_dir
      r_dir     << arg_dir
      r_len     << arg_len
      r_len     << arg_len
      r_is_last << arg_is_last
      r_is_last << arg_is_last
    end
    end
Line 213... Line 213...
    r_dir.sort.should be  ==   [ 1, 1, 0, 1, 0 ].sort
    r_dir.sort.should be  ==   [ 1, 1, 0, 1, 0 ].sort
    r_len.sort.should be  ==   [ 1, 2, 3, 1, 2 ].sort
    r_len.sort.should be  ==   [ 1, 2, 3, 1, 2 ].sort
    r_is_last.should be   == [ false, false, false, false, true ]
    r_is_last.should be   == [ false, false, false, false, true ]
 
 
 
 
    r_def     = []
    #r_def     = []
    r_name    = []
    r_name    = []
    r_dir     = []
    r_dir     = []
 
 
    c.ports( "i1" ) do |arg_name,arg_def,arg_dir|
    c.ports( "i1" ) do |arg_name,arg_dir, arg_default, arg_is_last|
      r_def     << arg_def
      #r_def     << arg_def
      r_name    << arg_name
      r_name    << arg_name
      r_dir     << arg_dir
      r_dir     << arg_dir
    end
    end
    r_def.should be == %w[ m_p1 m_p2 m_p3 ]
    #r_def.should be == %w[ m_p1 m_p2 m_p3 ]
    r_name.should be == %w[ p1 p2 p3 ]
    r_name.should be == %w[ m_p1 m_p2 m_p3 ]
    r_dir.should be  ==   [ 1, 1, 0, ]
    r_dir.should be  ==   [ 1, 1, 0, ]
 
 
  end
  end
 
 
 
end
 
 
 
 
 
describe SOCMaker::Component, "consistency_check" do
 
 
 
 
 
  it "should throw an error if an incomplete interface is used" do
 
    file = { "file.vhd".to_sym => SOCMaker::HDLFile.new( "./file.vhd" ) }
 
 
 
    # three (auto) mandatory ports
 
    ifc_s1 = SOCMaker::IfcSpc.new( "i1", "v1", 'ports' => { p1: { dir: 1}, p2: {dir: 1}, p3: {dir:0} } )
 
 
 
    # interface implementaiton with only two of the three ports
 
    p1 = SOCMaker::IfcPort.new( "p1", 1 )
 
    p2 = SOCMaker::IfcPort.new( "p2", 2 )
 
    ifc_d1 = SOCMaker::IfcDef.new( "i1", "v1", 0, { m_p1: p1, m_p2: p2 } )
 
 
 
    c = SOCMaker::Component.new( "acore", "v1", "top",
 
      { 'interfaces' =>  { i1: ifc_d1 } } )
 
 
 
 
 
   expect{ c.consistency_check }.
 
     to raise_error( SOCMaker::ERR::ProcessingError )
 
 
end
end
 
 
 
end
 
 
 
# vim: noai:ts=2:sw=2

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.