BlueGnu_target.itcl   [plain text]


#
# This script create a BlueGnu Target object
#

verbose "BlueGnu Target Information ****" 3

proc BlueGnu {args} {
    global nspTestSuite auto_path env
    global testCases

    verbose "@@@@@@@@@@@ BlueGnu Target Initialization Procedure @@@@@@@@@@@" 
    verbose " auto_path:\n            >$auto_path<" 5
    #
    # Create the BlueGnu Target Object, which need to be returned.
    #
    namespace eval $nspTestSuite {
	set args [uplevel 1 set args]
	verbose "Arguments: $args (are not used)" 3
	verbose "======= BlueGnu Procedure creates Target Object" 3


	# Check argument and remove the local argument from the list
	# All argument that do not contain a equal sign are also removed
	set i 0
	catch {unset rmList}
	foreach arg $args {
	    if {!$i} {
		if {[llength [split $arg "="]] == 1} {
		    uplevel set eInterface $arg
		    lappend rmList $i
		}
	    }
	    if {[string compare [lindex [split $arg "="] 0] \
		    "testCases"] == 0} {
		uplevel set testCases [lindex [split $arg "="] 1]
		lappend rmList $i
	    }
	    incr i
	}
	if {[info exists rmList]} {
	    #puts "rmList >$rmList<"
	    for {set i [expr [llength $rmList] - 1]} {$i >= 0} {incr i -1} {
		set args [lreplace $args $i $i]
	    }
	}
	verbose "Arguments (passed): $args" 5

	verbose "Arguments (used): $args" 3
	set target [eval [concat createTarget $args]]
	if {! [string match ::* $target]} {
	    set target [namespace current]::$target
	}
	debug {Target name >$target<} 3

	# Save all Environment Variables so they may be cleared!
	#
	[$target environment] saveEnv
    }

    # Return the name of the Target Object that has been created
    # This should be the last statement
    return [namespace eval $nspTestSuite {set target}]
}

proc BlueGnu_start {} {
    verbose "@@@@@@@@@@@ Starting BlueGnu Environment @@@@@@@@@@@"
}

proc BlueGnu_load {} {
    verbose "@@@@@@@@@@@ Load BlueGnu Environment @@@@@@@@@@@"
}

proc BlueGnu_exit {} {
    verbose "@@@@@@@@@@@ Exit BlueGnu Environment @@@@@@@@@@@"
}

proc BlueGnu_version {} {
    verbose "@@@@@@@@@@@ Version BlueGnu Environment @@@@@@@@@@@"
}

proc BlueGnu_overwrite {szNamespace} {
    # Modify output procedures to return instead of doing output
    #
    uplevel #0 {
	rename send_user send_user_saved
	rename send_error send_error_saved
	rename send_log send_log_saved
    }
    proc ::send_user args "set ${szNamespace}::sending(USER) 1"
    proc ::send_error args "set ${szNamespace}::sending(ERROR) 1"
    proc ::send_log args "set ${szNamespace}::sending(LOG) 1"
}

proc BlueGnu_restore {} {
    # Restore original procedures
    #
    uplevel #0 {
	rename send_user ""
	rename send_error ""
	rename send_log ""
	rename send_user_saved send_user
	rename send_error_saved send_error
	rename send_log_saved send_log
    }
}