_acs-tcl__files__check_info_files (private)

 _acs-tcl__files__check_info_files

Defined in packages/acs-tcl/tcl/test/file-test-procs.tcl

Partial Call Graph (max 5 caller/called nodes):
%3 aa_equals aa_equals (public) aa_log aa_log (public) aa_log_result aa_log_result (public) apm_package_installed_p apm_package_installed_p (public) apm_read_package_info_file apm_read_package_info_file (public) _acs-tcl__files__check_info_files _acs-tcl__files__check_info_files _acs-tcl__files__check_info_files->aa_equals _acs-tcl__files__check_info_files->aa_log _acs-tcl__files__check_info_files->aa_log_result _acs-tcl__files__check_info_files->apm_package_installed_p _acs-tcl__files__check_info_files->apm_read_package_info_file

Testcases:
No testcase defined.
Source code:
        
        set _aa_export {}
        set body_count 1
        foreach testcase_body {{
    set installed_packages [db_list get_installed {
        select distinct package_key
        from apm_package_versions
        where installed_p = 't'
        order by 1
    }]

    foreach spec_file [glob -nocomplain "$::acs::rootdir/packages/*/*.info"] {
        #
        # Skip uninstalled packages
        #
        regexp {/packages/([^/]+)/} $spec_file _ package_key
        if {![apm_package_installed_p $package_key]} {
            continue
        }

        lappend package_keys $package_key

        set errp 0
        if {  [catch {
            set version [apm_read_package_info_file $spec_file]
        } errMsg] } {
            aa_log_result fail "$spec_file returned $errMsg"
            set errp 1
        } else {
            regexp {packages/([^/]*)/} $spec_file match key
            if {[dict get $version package.key] ne $key } {
                aa_log_result fail "MISMATCH DIRECTORY/PACKAGE KEY: $spec_file [dict get $version package.key] != $key"
                set errp 1
            }
            # check on the requires, provides, etc stuff.
            if {[dict get $version provides] eq ""
                && [dict get $version package.type] eq "apm_service" } {
                aa_log_result fail "$spec_file SERVICE MISSING PROVIDES: $key"
                set errp 1
            } elseif { [dict get $version provides] ne ""} {
                if { [dict get $version name] ne [lindex [dict get $version provides] 0 1] } {
                    aa_log_result fail "$spec_file: MISMATCH PROVIDES VERSION: [dict get $version provides] [dict get $version name]"
                    set errp 1
                }
                if { $key ne [lindex [dict get $version provides] 0 0] } {
                    aa_log_result fail "$spec_file MISMATCH PROVIDES KEY: $key [dict get $version provides]"
                    set errp 1
                }
            }

            # check for duplicate parameters
            unset -nocomplain params
            foreach param [dict get $version parameters] {
                set name [lindex $param 0]
                if {[info exists params($name)]} {
                    aa_log_result fail "$spec_file: DUPLICATE PARAMETER: $name"
                    set errp 1
                }
                set params($name$name
            }
        }
        if {!$errp} {
            aa_log_result pass "$spec_file no errors"
        }
    }

    aa_equals "All installed packages have one info file."  [lsort $package_keys$installed_packages
}} {
          aa_log "Running testcase body $body_count"
          set ::__aa_test_indent [info level]
          set catch_val [catch $testcase_body msg]
          if {$catch_val != 0 && $catch_val != 2} {
              aa_log_result "fail" "files__check_info_files (body $body_count): Error during execution: $msg, stack trace: \n$::errorInfo"
          }
          incr body_count
        }
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: