149 lines
5.8 KiB
Ruby
Executable File
149 lines
5.8 KiB
Ruby
Executable File
#
|
|
# projects_test.rb
|
|
# Unit tests
|
|
#
|
|
# Author::
|
|
# Date::
|
|
#
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Uses
|
|
#-----------------------------------------------------------------------------
|
|
require 'pipeline/config/projects'
|
|
require 'pipeline/util/environment'
|
|
require 'test/unit'
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Implementation
|
|
#-----------------------------------------------------------------------------
|
|
module Pipeline
|
|
module Test
|
|
|
|
#
|
|
# == Description
|
|
# Project class unit test cases.
|
|
#
|
|
class ProjectTest < ::Test::Unit::TestCase
|
|
|
|
#---------------------------------------------------------------------
|
|
# Constants
|
|
#---------------------------------------------------------------------
|
|
PROJECT_NAME = 'jimmy'
|
|
PROJECT_UINAME = 'Jimmy'
|
|
PROJECT_ROOT = 'x:/jimmy'
|
|
|
|
def setup( )
|
|
@c = Pipeline::Config.instance()
|
|
|
|
@project = Pipeline::Project.new( 'jimmy', 'Jimmy', 'x:/jimmy',
|
|
OS::Path.combine( Globals::instance().toolsroot, 'jimmy', 'bin', 'config.xml' ),
|
|
'jimmy' )
|
|
assert( @project.is_a?( Pipeline::Project ), 'Invalid Project class created.' )
|
|
assert( !@project.loaded_config, 'Config loaded before being requested to load.' )
|
|
@project.load_config( true )
|
|
assert( @project.loaded_config, 'Config not loaded after request.' )
|
|
end
|
|
|
|
def test_data( )
|
|
assert_equal( PROJECT_NAME, @project.name, 'Invalid project name.' )
|
|
assert_equal( PROJECT_UINAME, @project.uiname, 'Invalid project uiname.' )
|
|
assert_equal( PROJECT_ROOT, @project.root, 'Invalid project root.' )
|
|
end
|
|
|
|
def test_branch_data( )
|
|
assert( @project.branches.is_a?( Hash ), 'Invalid project branches Hash.' )
|
|
|
|
@project.branches.each_pair do |branch_name, branch|
|
|
assert( branch.is_a?( Pipeline::Branch ), "Invalid branch defined #{branch.class}." )
|
|
|
|
if ( 'dev_migrate' == branch_name ) then
|
|
assert_equal( 'x:/jimmy/build/dev_migrate', branch.build )
|
|
assert_equal( 'x:/jimmy/build/dev_migrate/independent', branch.independent )
|
|
assert_equal( 'x:/jimmy/build/dev_migrate/common', branch.common )
|
|
assert_equal( 'x:/jimmy/build/dev_migrate/common/shaders', branch.shaders )
|
|
assert_equal( 'x:/jimmy/jimmy_art', branch.art )
|
|
|
|
elsif ( 'dev' == branch_name ) then
|
|
assert_equal( 'x:/jimmy/build/dev', branch.build )
|
|
assert_equal( 'x:/jimmy/build/dev/independent', branch.independent )
|
|
assert_equal( 'x:/jimmy/build/dev/common', branch.common )
|
|
assert_equal( 'x:/jimmy/build/dev/common/shaders', branch.shaders )
|
|
assert_equal( 'x:/jimmy/jimmy_art', branch.art )
|
|
|
|
end
|
|
|
|
# Test targets
|
|
branch.targets.each_pair do |platform, target|
|
|
assert_equal( branch.object_id, target.branch.object_id, 'Invalid target branch.' )
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_default_branch_data( )
|
|
assert( @project.default_branch.is_a?( String ), 'No project default branch set.' )
|
|
|
|
# Test our default data (for compatibility)
|
|
assert_equal( 'x:/jimmy/build/dev', @project.build, 'Error with default branch build path.' )
|
|
assert_equal( 'x:/jimmy/build/dev/independent', @project.independent, 'Error with default branch independent path.' )
|
|
assert_equal( 'x:/jimmy/build/dev/common', @project.common, 'Error with default branch common path.' )
|
|
assert_equal( 'x:/jimmy/build/dev/common/shaders', @project.shaders, 'Error with default branch shaders path.' )
|
|
assert_equal( 'x:/jimmy/src/dev', @project.code, 'Error with default branch code path.' )
|
|
assert_equal( 'x:/rage/dev_north_gta', @project.ragecode, 'Error with default branch ragecode path.' )
|
|
assert_equal( 'x:/jimmy/jimmy_art', @project.art, 'Error with default branch art path.' )
|
|
|
|
# Test Independent Target (for compatibility)
|
|
assert( @project.ind_target.is_a?( Pipeline::IndependentTarget ), 'Invalid default branch independent target.' )
|
|
assert( @project.ind_target.branch.is_a?( Pipeline::Branch ), 'Invalid default branch independent target branch.' )
|
|
assert( @project.ind_target.project.is_a?( Pipeline::Project ), 'Invalid default branch independent target project.' )
|
|
assert_equal( @project, @project.ind_target.project, 'Default branch independent target project mismatch.' )
|
|
assert_equal( @project.branches[@project.default_branch], @project.ind_target.branch, 'Default branch independent target branch mismatch.' )
|
|
|
|
# Test Targets data (for compatibility)
|
|
assert( @project.targets.is_a?( Hash ), 'Invalid default branch targets Array.' )
|
|
assert_equal( 'independent', @project.ind_target.platform, 'Invalid default branch independent target platform.' )
|
|
assert( ( @project.targets.size > 0 ), 'No default branch targets, XML parse error?' )
|
|
|
|
has_ps3 = false
|
|
has_xbox360 = false
|
|
@project.targets.each_pair do |platform, target|
|
|
has_ps3 = true if ( 'ps3' == platform )
|
|
has_xbox360 = true if ( 'xbox360' == platform )
|
|
|
|
assert( target.branch.is_a?( Pipeline::Branch ), 'Invalid default branch target branch.' )
|
|
assert( target.branch.name == @project.default_branch )
|
|
assert( target.is_a?( Pipeline::Target ), 'Invalid default branch target.' )
|
|
end
|
|
assert( has_ps3, 'No PS3 target defined.' )
|
|
assert( has_xbox360, 'No xbox360 target defined.' )
|
|
end
|
|
|
|
def test_reset( )
|
|
end
|
|
|
|
#
|
|
# Project environment testing. This is a large one as it ensures we
|
|
# have compatibility with tools created before the branch support was
|
|
# added to the project configuration.
|
|
#
|
|
def test_env( )
|
|
|
|
env = Environment.new()
|
|
@project.fill_env( env )
|
|
env.list()
|
|
end
|
|
|
|
def test_ind_target( )
|
|
end
|
|
|
|
def test_targets( )
|
|
end
|
|
|
|
def test_file_test( )
|
|
end
|
|
end
|
|
|
|
end # Test module
|
|
end # Pipeline module
|
|
|
|
# End of project_test.rb
|