diff --git a/Makedefs.in b/Makedefs.in index 419ed58..350399d 100644 --- a/Makedefs.in +++ b/Makedefs.in @@ -2,7 +2,7 @@ # Common makefile definitions for the IPP Everywhere Printer Self-Certification # tools. # -# Copyright © 2015-2022 by the ISTO Printer Working Group. +# Copyright © 2015-2024 by the ISTO Printer Working Group. # # Licensed under Apache License v2.0. See the file "LICENSE" for more # information. @@ -16,7 +16,6 @@ IPPEVESELFCERT_SWVERSION = @IPPEVESELFCERT_SWVERSION@ # Programs... CC = @CC@ CODE_SIGN = @CODE_SIGN@ -CXX = @CXX@ INSTALL = @INSTALL@ LN = @LN@ -sf MKDIR = @MKDIR@ -p @@ -36,9 +35,8 @@ INSTALL_MAN = $(INSTALL) -c -m 444 # Programs options... CFLAGS = @CFLAGS@ $(CPPFLAGS) $(OPTIM) $(WARNINGS) CODESIGN_IDENTITY = - -CPPFLAGS = -I.. -I../libcups -I../pdfio @CPPFLAGS@ +CPPFLAGS = -I.. -I../libcups @CPPFLAGS@ CSFLAGS = -s "$(CODESIGN_IDENTITY)" @CSFLAGS@ --timestamp -CXXFLAGS = @CXXFLAGS@ $(CPPFLAGS) $(OPTIM) $(WARNINGS) LDFLAGS = @LDFLAGS@ $(OPTIM) LIBS = -L../libcups/cups `PKG_CONFIG_PATH=../libcups pkg-config --libs cups3` @LIBS@ OPTIM = @OPTIM@ @@ -70,12 +68,8 @@ BUILDROOT = $(DSTROOT)$(RPM_BUILD_ROOT)$(DESTDIR) # Build commands... .SILENT: -.SUFFIXES: .c .cxx .h .o +.SUFFIXES: .c .h .o .c.o: echo Compiling $<... $(CC) $(CFLAGS) -c -o $@ $< - -.cxx.o: - echo Compiling $<... - $(CXX) $(CXXFLAGS) -c -o $@ $< diff --git a/Makefile b/Makefile index 8b96449..40f7ed2 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # # Top-level makefile for the IPP Everywhere Printer Self-Certification tools. # -# Copyright © 2015-2022 by the ISTO Printer Working Group. +# Copyright © 2015-2024 by the ISTO Printer Working Group. # # Licensed under Apache License v2.0. See the file "LICENSE" for more # information. diff --git a/NOTICE b/NOTICE index 2640191..9df20eb 100644 --- a/NOTICE +++ b/NOTICE @@ -1,3 +1,3 @@ -IPP Everywhere Printer Self-Certification Tools +IPP Everywhere™ Printer Self-Certification Tools -Copyright © 2014-2022 by the IEEE-ISTO Printer Working Group. +Copyright © 2014-2024 by the IEEE-ISTO Printer Working Group. diff --git a/README.md b/README.md index 2daeadd..3619590 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,14 @@ IPP Everywhere™ v2.0 Printer Self-Certification Tools ===================================================== > Note: The current v1.1 self-certification tools are provided in the -> "v1.1-updates" branch of this repository. +> "v1.1-updates" branch of this repository. The master branch provides the +> current v2.0 development code. ![Version](https://img.shields.io/github/v/release/istopwg/ippeveselfcert?include_prereleases) ![Apache 2.0](https://img.shields.io/github/license/istopwg/ippeveselfcert) ![Build and Test](https://github.com/istopwg/ippeveselfcert/workflows/Build%20and%20Test/badge.svg) [![ippeveselfcert](https://snapcraft.io/ippeveselfcert/badge.svg)](https://snapcraft.io/ippeveselfcert) [![Coverity Scan Status](https://img.shields.io/coverity/scan/25371.svg)](https://scan.coverity.com/projects/istopwg-ippeveselfcert) -[![Total alerts](https://img.shields.io/lgtm/alerts/g/istopwg/ippeveselfcert.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/istopwg/ippeveselfcert/alerts/) -[![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/istopwg/ippeveselfcert.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/istopwg/ippeveselfcert/context:cpp) The IPP Everywhere™ Printer self-certification tools are used to test the conformance of printers to PWG Candidate Standard 5100.14-20xx: IPP Everywhere™ @@ -43,7 +42,7 @@ Please see the file "BUILD.md" for instructions on compiling the software. Legal Stuff ----------- -Copyright © 2014-2022 by the IEEE-ISTO Printer Working Group. +Copyright © 2014-2024 by the IEEE-ISTO Printer Working Group. This software is provided under the terms of the Apache License, Version 2.0. A copy of this license can be found in the file `LICENSE`. Additional legal diff --git a/config.h.in b/config.h.in index 083dac5..fd379cd 100644 --- a/config.h.in +++ b/config.h.in @@ -1,7 +1,7 @@ // // Configuration file for the IPP Everywhere Printer Self-Certification tools. // -// Copyright © 2015-2022 by the IEEE-ISTO Printer Working Group. +// Copyright © 2015-2024 by the IEEE-ISTO Printer Working Group. // // Licensed under Apache License v2.0. See the file "LICENSE" for more // information. @@ -16,10 +16,4 @@ #define IPPEVESELFCERT_SWVERSION "" -// DNS-SD support -#undef HAVE_DNSSD -#undef HAVE_MDNSRESPONDER -#undef HAVE_AVAHI - - #endif // !IPPEVESELFCERT_CONFIG_H diff --git a/configure b/configure index 3600704..8e3e7d6 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for IPPEVESELFCERT20 2.0b1. +# Generated by GNU Autoconf 2.71 for ippeveselfcert 2.0b1. # # Report bugs to . # @@ -608,61 +608,25 @@ MFLAGS= MAKEFLAGS= # Identity of this package. -PACKAGE_NAME='IPPEVESELFCERT20' +PACKAGE_NAME='ippeveselfcert' PACKAGE_TARNAME='ippeveselfcert' PACKAGE_VERSION='2.0b1' -PACKAGE_STRING='IPPEVESELFCERT20 2.0b1' +PACKAGE_STRING='ippeveselfcert 2.0b1' PACKAGE_BUGREPORT='https://github.com/istopwg/ippeveselfcert/issues' PACKAGE_URL='http://www.pwg.org/ipp/everywhere.html' enable_option_checking=no -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_STDIO_H -# include -#endif -#ifdef HAVE_STDLIB_H -# include -#endif -#ifdef HAVE_STRING_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_header_c_list= ac_subst_vars='LTLIBOBJS LIBOBJS WARNINGS CSFLAGS PKGCONFIG INSTALL -FLTKCONFIG LN RMDIR RM MKDIR CODE_SIGN -ac_ct_CXX -CXXFLAGS -CXX OBJEXT EXEEXT ac_ct_CC @@ -724,10 +688,9 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking -with_dnssd enable_debug enable_maintainer -enable_sanitizer +with_sanitizer with_ldflags ' ac_precious_vars='build_alias @@ -737,10 +700,7 @@ CC CFLAGS LDFLAGS LIBS -CPPFLAGS -CXX -CXXFLAGS -CCC' +CPPFLAGS' ac_subdirs_all='libcups' # Initialize some variables set by options. @@ -1289,7 +1249,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures IPPEVESELFCERT20 2.0b1 to adapt to many kinds of systems. +\`configure' configures ippeveselfcert 2.0b1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1355,7 +1315,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of IPPEVESELFCERT20 2.0b1:";; + short | recursive ) echo "Configuration of ippeveselfcert 2.0b1:";; esac cat <<\_ACEOF @@ -1365,12 +1325,12 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug turn on debugging, default=no --enable-maintainer turn on maintainer mode, default=no - --enable-sanitizer build with AddressSanitizer, default=no Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-dnssd=LIBRARY set DNS-SD library (auto, avahi, mdnsresponder) + --with-sanitizer build with address, leak, memory, thread, or + undefined sanitizer, default=no --with-ldflags=... Specify additional LDFLAGS Some influential environment variables: @@ -1381,14 +1341,12 @@ Some influential environment variables: LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory - CXX C++ compiler command - CXXFLAGS C++ compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . -IPPEVESELFCERT20 home page: . +ippeveselfcert home page: . _ACEOF ac_status=$? fi @@ -1452,7 +1410,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -IPPEVESELFCERT20 configure 2.0b1 +ippeveselfcert configure 2.0b1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1504,78 +1462,6 @@ fi as_fn_set_status $ac_retval } # ac_fn_c_try_compile - -# ac_fn_cxx_try_compile LINENO -# ---------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest.beam - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext -then : - ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_compile - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -printf %s "checking for $2... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$3=yes" -else $as_nop - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile ac_configure_args_raw= for ac_arg do @@ -1600,7 +1486,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by IPPEVESELFCERT20 $as_me 2.0b1, which was +It was created by ippeveselfcert $as_me 2.0b1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2179,231 +2065,6 @@ main (int argc, char **argv) } " -# Test code for whether the C++ compiler supports C++98 (global declarations) -ac_cxx_conftest_cxx98_globals=' -// Does the compiler advertise C++98 conformance? -#if !defined __cplusplus || __cplusplus < 199711L -# error "Compiler does not advertise C++98 conformance" -#endif - -// These inclusions are to reject old compilers that -// lack the unsuffixed header files. -#include -#include - -// and are *not* freestanding headers in C++98. -extern void assert (int); -namespace std { - extern int strcmp (const char *, const char *); -} - -// Namespaces, exceptions, and templates were all added after "C++ 2.0". -using std::exception; -using std::strcmp; - -namespace { - -void test_exception_syntax() -{ - try { - throw "test"; - } catch (const char *s) { - // Extra parentheses suppress a warning when building autoconf itself, - // due to lint rules shared with more typical C programs. - assert (!(strcmp) (s, "test")); - } -} - -template struct test_template -{ - T const val; - explicit test_template(T t) : val(t) {} - template T add(U u) { return static_cast(u) + val; } -}; - -} // anonymous namespace -' - -# Test code for whether the C++ compiler supports C++98 (body of main) -ac_cxx_conftest_cxx98_main=' - assert (argc); - assert (! argv[0]); -{ - test_exception_syntax (); - test_template tt (2.0); - assert (tt.add (4) == 6.0); - assert (true && !false); -} -' - -# Test code for whether the C++ compiler supports C++11 (global declarations) -ac_cxx_conftest_cxx11_globals=' -// Does the compiler advertise C++ 2011 conformance? -#if !defined __cplusplus || __cplusplus < 201103L -# error "Compiler does not advertise C++11 conformance" -#endif - -namespace cxx11test -{ - constexpr int get_val() { return 20; } - - struct testinit - { - int i; - double d; - }; - - class delegate - { - public: - delegate(int n) : n(n) {} - delegate(): delegate(2354) {} - - virtual int getval() { return this->n; }; - protected: - int n; - }; - - class overridden : public delegate - { - public: - overridden(int n): delegate(n) {} - virtual int getval() override final { return this->n * 2; } - }; - - class nocopy - { - public: - nocopy(int i): i(i) {} - nocopy() = default; - nocopy(const nocopy&) = delete; - nocopy & operator=(const nocopy&) = delete; - private: - int i; - }; - - // for testing lambda expressions - template Ret eval(Fn f, Ret v) - { - return f(v); - } - - // for testing variadic templates and trailing return types - template auto sum(V first) -> V - { - return first; - } - template auto sum(V first, Args... rest) -> V - { - return first + sum(rest...); - } -} -' - -# Test code for whether the C++ compiler supports C++11 (body of main) -ac_cxx_conftest_cxx11_main=' -{ - // Test auto and decltype - auto a1 = 6538; - auto a2 = 48573953.4; - auto a3 = "String literal"; - - int total = 0; - for (auto i = a3; *i; ++i) { total += *i; } - - decltype(a2) a4 = 34895.034; -} -{ - // Test constexpr - short sa[cxx11test::get_val()] = { 0 }; -} -{ - // Test initializer lists - cxx11test::testinit il = { 4323, 435234.23544 }; -} -{ - // Test range-based for - int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, - 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; - for (auto &x : array) { x += 23; } -} -{ - // Test lambda expressions - using cxx11test::eval; - assert (eval ([](int x) { return x*2; }, 21) == 42); - double d = 2.0; - assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); - assert (d == 5.0); - assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); - assert (d == 5.0); -} -{ - // Test use of variadic templates - using cxx11test::sum; - auto a = sum(1); - auto b = sum(1, 2); - auto c = sum(1.0, 2.0, 3.0); -} -{ - // Test constructor delegation - cxx11test::delegate d1; - cxx11test::delegate d2(); - cxx11test::delegate d3(45); -} -{ - // Test override and final - cxx11test::overridden o1(55464); -} -{ - // Test nullptr - char *c = nullptr; -} -{ - // Test template brackets - test_template<::test_template> v(test_template(12)); -} -{ - // Unicode literals - char const *utf8 = u8"UTF-8 string \u2500"; - char16_t const *utf16 = u"UTF-8 string \u2500"; - char32_t const *utf32 = U"UTF-32 string \u2500"; -} -' - -# Test code for whether the C compiler supports C++11 (complete). -ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals} -${ac_cxx_conftest_cxx11_globals} - -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_cxx_conftest_cxx98_main} - ${ac_cxx_conftest_cxx11_main} - return ok; -} -" - -# Test code for whether the C compiler supports C++98 (complete). -ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals} -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_cxx_conftest_cxx98_main} - return ok; -} -" - -as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" -as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" -as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" -as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" -as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" -as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" -as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" -as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" -as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" # Auxiliary files required by this configure script. ac_aux_files="config.guess config.sub" @@ -2686,7 +2347,6 @@ fi CFLAGS="${CFLAGS:=}" CPPFLAGS="${CPPFLAGS:=}" -CXXFLAGS="${CXXFLAGS:=}" LDFLAGS="${LDFLAGS:=}" LIBS="${LIBS:=}" OPTIM="${OPTIM:=}" @@ -3689,36 +3349,22 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +for ac_prog in codesign true +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CXX+y} +if test ${ac_cv_path_CODE_SIGN+y} then : printf %s "(cached) " >&6 else $as_nop - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $CODE_SIGN in + [\\/]* | ?:[\\/]*) + ac_cv_path_CODE_SIGN="$CODE_SIGN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS @@ -3729,7 +3375,7 @@ do esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + ac_cv_path_CODE_SIGN="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi @@ -3737,37 +3383,36 @@ done done IFS=$as_save_IFS + ;; +esac fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -printf "%s\n" "$CXX" >&6; } +CODE_SIGN=$ac_cv_path_CODE_SIGN +if test -n "$CODE_SIGN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CODE_SIGN" >&5 +printf "%s\n" "$CODE_SIGN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 + test -n "$CODE_SIGN" && break +done + +# Extract the first word of "mkdir", so it can be a program name with args. +set dummy mkdir; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_CXX+y} +if test ${ac_cv_path_MKDIR+y} then : printf %s "(cached) " >&6 else $as_nop - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $MKDIR in + [\\/]* | ?:[\\/]*) + ac_cv_path_MKDIR="$MKDIR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS @@ -3778,7 +3423,7 @@ do esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" + ac_cv_path_MKDIR="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi @@ -3786,421 +3431,61 @@ done done IFS=$as_save_IFS + ;; +esac fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -printf "%s\n" "$ac_ct_CXX" >&6; } +MKDIR=$ac_cv_path_MKDIR +if test -n "$MKDIR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR" >&5 +printf "%s\n" "$MKDIR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi - test -n "$ac_ct_CXX" && break +# Extract the first word of "rm", so it can be a program name with args. +set dummy rm; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_RM+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $RM in + [\\/]* | ?:[\\/]*) + ac_cv_path_RM="$RM" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_RM="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi done + done +IFS=$as_save_IFS - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; + ;; esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 -printf %s "checking whether the compiler supports GNU C++... " >&6; } -if test ${ac_cv_cxx_compiler_gnu+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO" -then : - ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+y} -ac_save_CXXFLAGS=$CXXFLAGS -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -printf %s "checking whether $CXX accepts -g... " >&6; } -if test ${ac_cv_prog_cxx_g+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO" -then : - ac_cv_prog_cxx_g=yes -else $as_nop - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO" -then : - -else $as_nop - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO" -then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } -if test $ac_test_CXXFLAGS; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_prog_cxx_stdcxx=no -if test x$ac_prog_cxx_stdcxx = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 -printf %s "checking for $CXX option to enable C++11 features... " >&6; } -if test ${ac_cv_prog_cxx_11+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_11=no -ac_save_CXX=$CXX -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_cxx_conftest_cxx11_program -_ACEOF -for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA -do - CXX="$ac_save_CXX $ac_arg" - if ac_fn_cxx_try_compile "$LINENO" -then : - ac_cv_prog_cxx_cxx11=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cxx_cxx11" != "xno" && break -done -rm -f conftest.$ac_ext -CXX=$ac_save_CXX -fi - -if test "x$ac_cv_prog_cxx_cxx11" = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cxx_cxx11" = x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 -printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } - CXX="$CXX $ac_cv_prog_cxx_cxx11" -fi - ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 - ac_prog_cxx_stdcxx=cxx11 -fi -fi -if test x$ac_prog_cxx_stdcxx = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 -printf %s "checking for $CXX option to enable C++98 features... " >&6; } -if test ${ac_cv_prog_cxx_98+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_98=no -ac_save_CXX=$CXX -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_cxx_conftest_cxx98_program -_ACEOF -for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA -do - CXX="$ac_save_CXX $ac_arg" - if ac_fn_cxx_try_compile "$LINENO" -then : - ac_cv_prog_cxx_cxx98=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cxx_cxx98" != "xno" && break -done -rm -f conftest.$ac_ext -CXX=$ac_save_CXX -fi - -if test "x$ac_cv_prog_cxx_cxx98" = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cxx_cxx98" = x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 -printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } - CXX="$CXX $ac_cv_prog_cxx_cxx98" -fi - ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 - ac_prog_cxx_stdcxx=cxx98 -fi -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -for ac_prog in codesign true -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_CODE_SIGN+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $CODE_SIGN in - [\\/]* | ?:[\\/]*) - ac_cv_path_CODE_SIGN="$CODE_SIGN" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_CODE_SIGN="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -CODE_SIGN=$ac_cv_path_CODE_SIGN -if test -n "$CODE_SIGN"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CODE_SIGN" >&5 -printf "%s\n" "$CODE_SIGN" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$CODE_SIGN" && break -done - -# Extract the first word of "mkdir", so it can be a program name with args. -set dummy mkdir; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_MKDIR+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $MKDIR in - [\\/]* | ?:[\\/]*) - ac_cv_path_MKDIR="$MKDIR" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_MKDIR="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MKDIR=$ac_cv_path_MKDIR -if test -n "$MKDIR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR" >&5 -printf "%s\n" "$MKDIR" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -# Extract the first word of "rm", so it can be a program name with args. -set dummy rm; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_RM+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $RM in - [\\/]* | ?:[\\/]*) - ac_cv_path_RM="$RM" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_RM="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -RM=$ac_cv_path_RM -if test -n "$RM"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 -printf "%s\n" "$RM" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +fi +RM=$ac_cv_path_RM +if test -n "$RM"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 +printf "%s\n" "$RM" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4296,64 +3581,6 @@ fi -# Extract the first word of "fltk-config", so it can be a program name with args. -set dummy fltk-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_FLTKCONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $FLTKCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_FLTKCONFIG="$FLTKCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_FLTKCONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -FLTKCONFIG=$ac_cv_path_FLTKCONFIG -if test -n "$FLTKCONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FLTKCONFIG" >&5 -printf "%s\n" "$FLTKCONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -if test "x$FLTKCONFIG" = x -then : - - as_fn_error $? "ippeveselfcert requires the FLTK library." "$LINENO" 5 - -else $as_nop - - CPPFLAGS="$CPPFLAGS $($FLTKCONFIG --cflags)" - LIBS="$LIBS $($FLTKCONFIG --ldflags)" - -fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for install-sh script" >&5 printf %s "checking for install-sh script... " >&6; } INSTALL="$(pwd)/install-sh" @@ -4472,175 +3699,39 @@ fi - -# Check whether --with-dnssd was given. -if test ${with_dnssd+y} -then : - withval=$with_dnssd; -fi - - - -ac_header= ac_cache= -for ac_item in $ac_header_c_list -do - if test $ac_cache; then - ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" - if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then - printf "%s\n" "#define $ac_item 1" >> confdefs.h - fi - ac_header= ac_cache= - elif test $ac_header; then - ac_cache=$ac_item - else - ac_header=$ac_item - fi -done - - - - - - - - -if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +# Check whether --enable-debug was given. +if test ${enable_debug+y} then : - -printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h - + enableval=$enable_debug; fi -if test "x$with_dnssd" != xmdnsresponder -a "x$with_dnssd" != xno -a "x$PKGCONFIG" != x -a x$host_os_name != xdarwin -then : - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Avahi" >&5 -printf %s "checking for Avahi... " >&6; } - if $PKGCONFIG --exists avahi-client -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - CPPFLAGS="$CPPFLAGS $($PKGCONFIG --cflags avahi-client)" - LIBS="$LIBS $($PKGCONFIG --libs avahi-client)" - -printf "%s\n" "#define HAVE_DNSSD 1" >>confdefs.h - - -printf "%s\n" "#define HAVE_AVAHI 1" >>confdefs.h - - -else $as_nop - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - if test x$with_dnssd = xavahi +# Check whether --enable-maintainer was given. +if test ${enable_maintainer+y} then : - as_fn_error $? "libavahi-client-dev needed for --with-dnssd=avahi." "$LINENO" 5 + enableval=$enable_maintainer; fi -fi -elif test x$with_dnssd = xavahi +# Check whether --with-sanitizer was given. +if test ${with_sanitizer+y} then : - - as_fn_error $? "pkgconfig and libavahi-client-dev needed for --with-dnssd=avahi." "$LINENO" 5 - -elif test x$with_dnssd != xavahi -a "x$with_dnssd" != xno -then : - - ac_fn_c_check_header_compile "$LINENO" "dns_sd.h" "ac_cv_header_dns_sd_h" "$ac_includes_default" -if test "x$ac_cv_header_dns_sd_h" = xyes -then : - - case "$host_os_name" in #( - darwin*) : - - # Darwin and macOS... - -printf "%s\n" "#define HAVE_DNSSD 1" >>confdefs.h - - -printf "%s\n" "#define HAVE_MDNSRESPONDER 1" >>confdefs.h - - LIBS="$LIBS -framework CoreFoundation -framework SystemConfiguration" - ;; #( - *) : - - # All others... - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for current version of dns_sd library" >&5 -printf %s "checking for current version of dns_sd library... " >&6; } - SAVELIBS="$LIBS" - LIBS="$LIBS -ldns_sd" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - int constant = kDNSServiceFlagsShareConnection; - unsigned char txtRecord[100]; - uint8_t valueLen; - TXTRecordGetValuePtr(sizeof(txtRecord), txtRecord, "value", &valueLen); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - -printf "%s\n" "#define HAVE_DNSSD 1" >>confdefs.h - - -printf "%s\n" "#define HAVE_MDNSRESPONDER 1" >>confdefs.h - - + withval=$with_sanitizer; else $as_nop - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - LIBS="$SAVELIBS" - if test x$with_dnssd = xmdnsresponder -then : - as_fn_error $? "mDNSResponder required for --with-dnssd=mdnsresponder." "$LINENO" 5 -fi - + with_sanitizer=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ;; #( - *) : - ;; -esac - -fi - -fi +if test "x$with_sanitizer" = xyes +then : + with_sanitizer="address" -# Check whether --enable-debug was given. -if test ${enable_debug+y} +elif test "$with_sanitizer" != address -a "$with_sanitizer" != leak -a "$with_sanitizer" != memory -a "$with_sanitizer" != no -a "$with_sanitizer" != thread -a "$with_sanitizer" != undefined then : - enableval=$enable_debug; -fi -# Check whether --enable-maintainer was given. -if test ${enable_maintainer+y} -then : - enableval=$enable_maintainer; -fi + as_fn_error $? "Unsupported --with-sanitizer value \"$with_sanitizer\" specified." "$LINENO" 5 -# Check whether --enable-sanitizer was given. -if test ${enable_sanitizer+y} -then : - enableval=$enable_sanitizer; fi - if test x$enable_debug = xyes then : @@ -4659,20 +3750,21 @@ fi WARNINGS="" + if test -n "$GCC" then : - if test x$enable_sanitizer = xyes + if test x$with_sanitizer != xno then : - # Use -fsanitize=address with debugging... - OPTIM="$OPTIM -fsanitize=address" + # Use -fsanitize=FOO with debugging... + OPTIM="$OPTIM -fsanitize=$with_sanitizer" else $as_nop # Otherwise use the Fortify enhancements to catch any unbounded # string operations... - CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2" + CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=3" fi @@ -4790,27 +3882,60 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext esac CFLAGS="$OLDCFLAGS" - case "$host_os_name" in #( + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OS-specific compiler options" >&5 +printf %s "checking for OS-specific compiler options... " >&6; } + case "$host_os_name" in #( linux*) : + # Make sure we get the full set of Linux APIs from the headers... CPPFLAGS="$CPPFLAGS -D__USE_MISC -D_GNU_SOURCE" + + # Mark read-only sections as relocatable to random addresses... + LDFLAGS="$LDFLAGS -Wl,-z,relro,-z,now" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: -D__USE_MISC -D_GNU_SOURCE -Wl,-z,relro,-z,now" >&5 +printf "%s\n" "-D__USE_MISC -D_GNU_SOURCE -Wl,-z,relro,-z,now" >&6; } ;; #( darwin*) : - if test "$host_os_version" -ge 200 -a x$enable_debug != xyes + # When not building for debug, target macOS 11.0 or later, "universal" + # binaries when possible... + if echo "$CPPFLAGS $CFLAGS $LDFLAGS $OPTIM" | grep -q "\\-arch " then : - # macOS 11.0 and higher support the Apple Silicon (arm64) CPUs - OPTIM="$OPTIM -mmacosx-version-min=10.14 -arch x86_64 -arch arm64" + # Don't add architecture/min-version flags if they are already present + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } + +elif echo "$CPPFLAGS $CFLAGS $LDFLAGS $OPTIM" | grep -q "\\-mmacosx-version-" +then : + + # Don't add architecture/min-version flags if they are already present + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } elif test x$enable_debug != xyes then : - OPTIM="$OPTIM -mmacosx-version-min=10.14 -arch x86_64" + # macOS 11.0 and higher support the Apple Silicon (arm64) CPUs + OPTIM="$OPTIM -mmacosx-version-min=10.14 -arch x86_64 -arch arm64" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: -mmacosx-version-min=10.14 -arch x86_64 -arch arm64" >&5 +printf "%s\n" "-mmacosx-version-min=10.14 -arch x86_64 -arch arm64" >&6; } + +else $as_nop + + # Don't add architecture/min-version flags if debug enabled + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } fi ;; #( *) : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } + ;; #( + *) : ;; esac @@ -5341,7 +4466,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by IPPEVESELFCERT20 $as_me 2.0b1, which was +This file was extended by ippeveselfcert $as_me 2.0b1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5398,7 +4523,7 @@ Configuration headers: $config_headers Report bugs to . -IPPEVESELFCERT20 home page: ." +ippeveselfcert home page: ." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` @@ -5406,7 +4531,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -IPPEVESELFCERT20 config.status 2.0b1 +ippeveselfcert config.status 2.0b1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 843985d..906dab0 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl dnl Configuration script for the IPP Everywhere Printer Self-Certification dnl tools. dnl -dnl Copyright 2015-2022 by the ISTO Printer Working Group. +dnl Copyright © 2015-2024 by the ISTO Printer Working Group. dnl dnl Licensed under Apache License v2.0. See the file "LICENSE" for more dnl information. @@ -12,8 +12,18 @@ dnl We need at least autoconf 2.70 for --runstatedir... AC_PREREQ([2.70]) +dnl Check for submodules... +AS_IF([test ! -d libcups], [ + AS_IF([test -d .git], [ + AC_MSG_ERROR([Run "git submodule init && git submodule update" to get the libcups submodule.]) + ], [ + AC_MSG_ERROR([The ZIP archive you downloaded via the Github "Code" button is missing the libcups submodule. Please download a dated release or use Git.]) + ]) +]) + + dnl Package name and version... -AC_INIT([IPPEVESELFCERT20], [2.0b1], [https://github.com/istopwg/ippeveselfcert/issues], [ippeveselfcert], [http://www.pwg.org/ipp/everywhere.html]) +AC_INIT([ippeveselfcert], [2.0b1], [https://github.com/istopwg/ippeveselfcert/issues], [ippeveselfcert], [http://www.pwg.org/ipp/everywhere.html]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SUBDIRS([libcups]) @@ -51,7 +61,6 @@ AS_IF([test "x$host_os_version" = x], [ dnl Compiler options... CFLAGS="${CFLAGS:=}" CPPFLAGS="${CPPFLAGS:=}" -CXXFLAGS="${CXXFLAGS:=}" LDFLAGS="${LDFLAGS:=}" LIBS="${LIBS:=}" OPTIM="${OPTIM:=}" @@ -61,7 +70,6 @@ AC_SUBST([OPTIM]) dnl Programs... AC_PROG_CC -AC_PROG_CXX AC_PATH_PROGS([CODE_SIGN], [codesign true]) AC_PATH_PROG([MKDIR], [mkdir]) AC_PATH_PROG([RM], [rm]) @@ -69,16 +77,6 @@ AC_PATH_PROG([RMDIR], [rmdir]) AC_PATH_PROG([LN], [ln]) -dnl fltk-config -AC_PATH_PROG(FLTKCONFIG,fltk-config) -AS_IF([test "x$FLTKCONFIG" = x], [ - AC_MSG_ERROR([ippeveselfcert requires the FLTK library.]) -], [ - CPPFLAGS="$CPPFLAGS $($FLTKCONFIG --cflags)" - LIBS="$LIBS $($FLTKCONFIG --ldflags)" -]) - - dnl install-sh AC_MSG_CHECKING([for install-sh script]) INSTALL="$(pwd)/install-sh" @@ -90,61 +88,15 @@ dnl Check for pkg-config, which is used for some other tests later on... AC_PATH_TOOL([PKGCONFIG], [pkg-config]) -dnl DNS-SD support... -AC_ARG_WITH([dnssd], AS_HELP_STRING([--with-dnssd=LIBRARY], [set DNS-SD library (auto, avahi, mdnsresponder)])) - -AS_IF([test "x$with_dnssd" != xmdnsresponder -a "x$with_dnssd" != xno -a "x$PKGCONFIG" != x -a x$host_os_name != xdarwin], [ - AC_MSG_CHECKING([for Avahi]) - AS_IF([$PKGCONFIG --exists avahi-client], [ - AC_MSG_RESULT([yes]) - CPPFLAGS="$CPPFLAGS $($PKGCONFIG --cflags avahi-client)" - LIBS="$LIBS $($PKGCONFIG --libs avahi-client)" - AC_DEFINE([HAVE_DNSSD], 1, [Have DNS-SD support?]) - AC_DEFINE([HAVE_AVAHI], 1, [Have Avahi?]) - ], [ - AC_MSG_RESULT([no]) - AS_IF([test x$with_dnssd = xavahi], - AC_MSG_ERROR([libavahi-client-dev needed for --with-dnssd=avahi.])) - ]) -], [test x$with_dnssd = xavahi], [ - AC_MSG_ERROR([pkgconfig and libavahi-client-dev needed for --with-dnssd=avahi.]) -], [test x$with_dnssd != xavahi -a "x$with_dnssd" != xno], [ - AC_CHECK_HEADER(dns_sd.h, [ - AS_CASE(["$host_os_name"], - [darwin*], [ - # Darwin and macOS... - AC_DEFINE([HAVE_DNSSD], 1, [Have DNS-SD support?]) - AC_DEFINE([HAVE_MDNSRESPONDER], 1, [Have mDNSResponder?)]) - LIBS="$LIBS -framework CoreFoundation -framework SystemConfiguration" - ], [*], [ - # All others... - AC_MSG_CHECKING(for current version of dns_sd library) - SAVELIBS="$LIBS" - LIBS="$LIBS -ldns_sd" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ - int constant = kDNSServiceFlagsShareConnection; - unsigned char txtRecord[100]; - uint8_t valueLen; - TXTRecordGetValuePtr(sizeof(txtRecord), txtRecord, "value", &valueLen);]]) - ],[ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_DNSSD], 1, [Have DNS-SD support?]) - AC_DEFINE([HAVE_MDNSRESPONDER], 1, [Have mDNSResponder?)]) - ],[ - AC_MSG_RESULT([no]) - LIBS="$SAVELIBS" - AS_IF([test x$with_dnssd = xmdnsresponder], - AC_MSG_ERROR([mDNSResponder required for --with-dnssd=mdnsresponder.])) - ]) - ]) - ]) -]) - - dnl Extra compiler options... AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [turn on debugging, default=no])) AC_ARG_ENABLE([maintainer], AS_HELP_STRING([--enable-maintainer], [turn on maintainer mode, default=no])) -AC_ARG_ENABLE([sanitizer], AS_HELP_STRING([--enable-sanitizer], [build with AddressSanitizer, default=no])) +AC_ARG_WITH([sanitizer], AS_HELP_STRING([--with-sanitizer], [build with address, leak, memory, thread, or undefined sanitizer, default=no]), [], [with_sanitizer=no]) +AS_IF([test "x$with_sanitizer" = xyes], [ + with_sanitizer="address" +], [test "$with_sanitizer" != address -a "$with_sanitizer" != leak -a "$with_sanitizer" != memory -a "$with_sanitizer" != no -a "$with_sanitizer" != thread -a "$with_sanitizer" != undefined], [ + AC_MSG_ERROR([Unsupported --with-sanitizer value "$with_sanitizer" specified.]) +]) AS_IF([test x$enable_debug = xyes], [ OPTIM="$OPTIM -g" @@ -160,13 +112,13 @@ WARNINGS="" AC_SUBST([WARNINGS]) AS_IF([test -n "$GCC"], [ - AS_IF([test x$enable_sanitizer = xyes], [ - # Use -fsanitize=address with debugging... - OPTIM="$OPTIM -fsanitize=address" + AS_IF([test x$with_sanitizer != xno], [ + # Use -fsanitize=FOO with debugging... + OPTIM="$OPTIM -fsanitize=$with_sanitizer" ], [ # Otherwise use the Fortify enhancements to catch any unbounded # string operations... - CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2" + CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=3" ]) dnl Show all standard warnings + unused variables when compiling... @@ -220,15 +172,34 @@ AS_IF([test -n "$GCC"], [ CFLAGS="$OLDCFLAGS" dnl OS-specific compiler options... + AC_MSG_CHECKING([for OS-specific compiler options]) AS_CASE(["$host_os_name"], [linux*], [ + # Make sure we get the full set of Linux APIs from the headers... CPPFLAGS="$CPPFLAGS -D__USE_MISC -D_GNU_SOURCE" + + # Mark read-only sections as relocatable to random addresses... + LDFLAGS="$LDFLAGS -Wl,-z,relro,-z,now" + + AC_MSG_RESULT([-D__USE_MISC -D_GNU_SOURCE -Wl,-z,relro,-z,now]) ], [darwin*], [ - AS_IF([test "$host_os_version" -ge 200 -a x$enable_debug != xyes], [ - # macOS 11.0 and higher support the Apple Silicon (arm64) CPUs + # When not building for debug, target macOS 11.0 or later, "universal" + # binaries when possible... + AS_IF([echo "$CPPFLAGS $CFLAGS $LDFLAGS $OPTIM" | grep -q "\\-arch "], [ + # Don't add architecture/min-version flags if they are already present + AC_MSG_RESULT([none]) + ], [echo "$CPPFLAGS $CFLAGS $LDFLAGS $OPTIM" | grep -q "\\-mmacosx-version-"], [ + # Don't add architecture/min-version flags if they are already present + AC_MSG_RESULT([none]) + ], [test x$enable_debug != xyes], [ + # macOS 11.0 and higher support the Apple Silicon (arm64) CPUs OPTIM="$OPTIM -mmacosx-version-min=10.14 -arch x86_64 -arch arm64" - ], [test x$enable_debug != xyes], [ - OPTIM="$OPTIM -mmacosx-version-min=10.14 -arch x86_64" + AC_MSG_RESULT([-mmacosx-version-min=10.14 -arch x86_64 -arch arm64]) + ], [ + # Don't add architecture/min-version flags if debug enabled + AC_MSG_RESULT([none]) ]) + ], [*], [ + AC_MSG_RESULT([none]) ]) ]) diff --git a/libcups b/libcups index f301532..a5d1409 160000 --- a/libcups +++ b/libcups @@ -1 +1 @@ -Subproject commit f301532076b27633db2541f34c2a4715fa84c431 +Subproject commit a5d1409f18f6cc843d1c3d4b9cd2f2d48d3b631f diff --git a/tests/dnssd-access-tests.test b/tests/dnssd-access-tests.test index 49133b7..0593ad1 100644 --- a/tests/dnssd-access-tests.test +++ b/tests/dnssd-access-tests.test @@ -13,7 +13,7 @@ # ./ipptool -tI printer-uri dnssd-access-tests.test # -FILE-ID "org.pwg.ippeveselfcert11.dnssd" +FILE-ID "org.pwg.ippeveselfcert20.dnssd" { # The name of the test... diff --git a/tests/dnssd-access-tests.test.in b/tests/dnssd-access-tests.test.in deleted file mode 100644 index 25d84df..0000000 --- a/tests/dnssd-access-tests.test.in +++ /dev/null @@ -1,33 +0,0 @@ -# -# IPP Everywhere Printer Self-Certification Manual 1.1: Section 5: DNS-SD Tests. -# -# Copyright 2014-2020 by the IEEE-ISTO Printer Working Group. -# Copyright 2007-2013 by Apple Inc. -# Copyright 2001-2006 by Easy Software Products. All rights reserved. -# -# Licensed under Apache License v2.0. See the file "LICENSE" for more -# information. -# -# Usage: -# -# ./ipptool -tI printer-uri dnssd-access-tests.test -# - -FILE-ID "org.pwg.@IPPEVESELFCERT_VERSION@.dnssd" - -{ - # The name of the test... - NAME "Validate access using Get-Printer-Attributes" - - # The operation to use - OPERATION Get-Printer-Attributes - - # Attributes, starting in the operation group... - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - - # What statuses are OK? - STATUS successful-ok -} diff --git a/tests/dnssd-value-tests.test b/tests/dnssd-value-tests.test index aa065c7..d1e6707 100644 --- a/tests/dnssd-value-tests.test +++ b/tests/dnssd-value-tests.test @@ -14,7 +14,7 @@ # ippfind ... -x ipptool -t "{}" dnssd-value-tests.test ";" # -FILE-ID "org.pwg.ippeveselfcert11.dnssd" +FILE-ID "org.pwg.ippeveselfcert20.dnssd" { # The name of the test... diff --git a/tests/dnssd-value-tests.test.in b/tests/dnssd-value-tests.test.in deleted file mode 100644 index 80ef3b9..0000000 --- a/tests/dnssd-value-tests.test.in +++ /dev/null @@ -1,38 +0,0 @@ -# -# IPP Everywhere Printer Self-Certification Manual 1.1: Section 5: DNS-SD Tests. -# -# Copyright 2014-2020 by the IEEE-ISTO Printer Working Group. -# Copyright 2007-2013 by Apple Inc. -# Copyright 2001-2006 by Easy Software Products. All rights reserved. -# -# Licensed under Apache License v2.0. See the file "LICENSE" for more -# information. -# -# Usage: -# -# (run from within ippfind) -# ippfind ... -x ipptool -t "{}" dnssd-value-tests.test ";" -# - -FILE-ID "org.pwg.@IPPEVESELFCERT_VERSION@.dnssd" - -{ - # The name of the test... - NAME "Validate TXT record values using Get-Printer-Attributes" - - # The operation to use - OPERATION Get-Printer-Attributes - - # Attributes, starting in the operation group... - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - - # What statuses are OK? - STATUS successful-ok - - # What attributes do we expect? - EXPECT printer-more-info OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$ENV[IPPFIND_TXT_ADMINURL]" - EXPECT printer-uuid OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "urn:uuid:$ENV[IPPFIND_TXT_UUID]" -} diff --git a/tests/document-tests.test b/tests/document-tests.test index 2ac5946..b85cdaf 100644 --- a/tests/document-tests.test +++ b/tests/document-tests.test @@ -16,7 +16,7 @@ # tools but dynamically generates the PWG Raster documents. # -FILE-ID "org.pwg.ippeveselfcert11.document" +FILE-ID "org.pwg.ippeveselfcert20.document" { NAME "D-1. PWG Raster Format Tests (mandatory)" diff --git a/tests/document-tests.test.in b/tests/document-tests.test.in deleted file mode 100644 index c0ceebd..0000000 --- a/tests/document-tests.test.in +++ /dev/null @@ -1,914 +0,0 @@ -# -# IPP Everywhere Printer Self-Certification Manual 1.1: Section 7: Document Data Tests. -# -# Copyright 2014-2022 by the IEEE-ISTO Printer Working Group. -# Copyright 2007-2013 by Apple Inc. -# Copyright 2001-2006 by Easy Software Products. All rights reserved. -# -# Licensed under Apache License v2.0. See the file "LICENSE" for more -# information. -# -# Usage: -# -# ./ipptool -tI printer-uri document-tests.test -# -# This test depends on JPEG and PDF files provided with the self-certification -# tools but dynamically generates the PWG Raster documents. -# - -FILE-ID "org.pwg.@IPPEVESELFCERT_VERSION@.document" - -{ - NAME "D-1. PWG Raster Format Tests (mandatory)" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - - STATUS successful-ok - - EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "deflate" DEFINE-MATCH HAVE_DEFLATE - EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "gzip" DEFINE-MATCH HAVE_GZIP - - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "image/pwg-raster" - - EXPECT media-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "iso_a4_210x297mm" DEFINE-MATCH HAVE_A4 - EXPECT media-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "na_letter_8.5x11in" DEFINE-MATCH HAVE_LETTER - - EXPECT pwg-raster-document-type-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "black_1" DEFINE-MATCH HAVE_BLACK - EXPECT pwg-raster-document-type-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "sgray_8" DEFINE-MATCH HAVE_SGRAY - EXPECT pwg-raster-document-type-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "srgb_8" DEFINE-MATCH HAVE_SRGB - EXPECT pwg-raster-document-type-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "cmyk_8" DEFINE-MATCH HAVE_CMYK -} - -#### 1.1 NO COMPRESSION #### -{ - SKIP-IF-NOT-DEFINED HAVE_BLACK - NAME "D-1.1 Print PWG @ maximum resolution (black_1, no compression)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.1 black_1\, no compression" - ATTR mimeMediaType document-format "image/pwg-raster" - GENERATE-FILE { - COLORSPACE black_1 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_BLACK - NAME "D-1.1 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_SGRAY - NAME "D-1.1 Print PWG @ maximum resolution, (sgray_8, no compression)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.1 sgray_8\, no compression" - ATTR mimeMediaType document-format "image/pwg-raster" - GENERATE-FILE { - COLORSPACE sgray_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_SGRAY - NAME "D-1.1 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_SRGB - NAME "D-1.1 Print PWG @ maximum resolution (srgb_8, no compression)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.1 srgb_8\, no compression" - ATTR mimeMediaType document-format "image/pwg-raster" - GENERATE-FILE { - COLORSPACE srgb_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_SRGB - NAME "D-1.1 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_CMYK - NAME "D-1.1 Print PWG @ maximum resolution (cmyk_8, no compression)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.1 cmyk_8, no compression" - ATTR mimeMediaType document-format "image/pwg-raster" - GENERATE-FILE { - COLORSPACE cmyk_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_CMYK - NAME "D-1.1 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} - -#### 1.2 DEFLATE COMPRESSION #### -{ - SKIP-IF-NOT-DEFINED HAVE_BLACK - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - NAME "D-1.2 Print PWG @ maximum resolution (black_1, deflate)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.2 black_1\, deflate" - ATTR mimeMediaType document-format "image/pwg-raster" - ATTR keyword compression deflate - COMPRESSION deflate - GENERATE-FILE { - COLORSPACE black_1 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_BLACK - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - NAME "D-1.2 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_SGRAY - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - NAME "D-1.2 Print PWG @ maximum resolution (sgray_8, deflate)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.2 sgray_8\, deflate" - ATTR mimeMediaType document-format "image/pwg-raster" - ATTR keyword compression deflate - COMPRESSION deflate - GENERATE-FILE { - COLORSPACE sgray_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_SGRAY - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - NAME "D-1.2 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_SRGB - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - NAME "D-1.2 Print PWG @ maximum resolution (srgb_8, deflate)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.2 srgb_8\, deflate" - ATTR mimeMediaType document-format "image/pwg-raster" - ATTR keyword compression deflate - COMPRESSION deflate - GENERATE-FILE { - COLORSPACE srgb_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_SRGB - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - NAME "D-1.2 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_CMYK - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - NAME "D-1.2 Print PWG @ maximum resolution (cmyk_8, deflate)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.2 cmyk_8\, deflate" - ATTR mimeMediaType document-format "image/pwg-raster" - ATTR keyword compression deflate - COMPRESSION deflate - GENERATE-FILE { - COLORSPACE cmyk_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_CMYK - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - NAME "D-1.2 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} - -#### 1.3 GZIP COMPRESSION #### -{ - SKIP-IF-NOT-DEFINED HAVE_BLACK - SKIP-IF-NOT-DEFINED HAVE_GZIP - NAME "D-1.3 Print PWG @ maximum resolution (black_1, gzip)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.3 black_1\, gzip" - ATTR mimeMediaType document-format "image/pwg-raster" - ATTR keyword compression gzip - COMPRESSION gzip - GENERATE-FILE { - COLORSPACE black_1 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_BLACK - SKIP-IF-NOT-DEFINED HAVE_GZIP - NAME "D-1.3 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_SGRAY - SKIP-IF-NOT-DEFINED HAVE_GZIP - NAME "D-1.3 Print PWG @ maximum resolution (sgray_8, gzip)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.3 sgray_8\, gzip" - ATTR mimeMediaType document-format "image/pwg-raster" - ATTR keyword compression gzip - COMPRESSION gzip - GENERATE-FILE { - COLORSPACE sgray_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_SGRAY - SKIP-IF-NOT-DEFINED HAVE_GZIP - NAME "D-1.3 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_SRGB - SKIP-IF-NOT-DEFINED HAVE_GZIP - NAME "D-1.3 Print PWG @ maximum resolution (srgb_8, gzip)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.3 srgb_8\, gzip" - ATTR mimeMediaType document-format "image/pwg-raster" - ATTR keyword compression gzip - COMPRESSION gzip - GENERATE-FILE { - COLORSPACE srgb_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_SRGB - SKIP-IF-NOT-DEFINED HAVE_GZIP - NAME "D-1.3 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_CMYK - SKIP-IF-NOT-DEFINED HAVE_GZIP - NAME "D-1.3 Print PWG @ maximum resolution (cmyk_8, gzip)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.3 cmyk_8\, gzip" - ATTR mimeMediaType document-format "image/pwg-raster" - ATTR keyword compression gzip - COMPRESSION gzip - GENERATE-FILE { - COLORSPACE cmyk_8 - RESOLUTION max - NUM-PAGES 1 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_CMYK - SKIP-IF-NOT-DEFINED HAVE_GZIP - NAME "D-1.3 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} - -#### 1.4 A4 TESTS #### -{ - SKIP-IF-NOT-DEFINED HAVE_A4 - NAME "D-1.4 Print A4 PWG @ maximum resolution, auto" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.4 A4 PWG" - ATTR mimeMediaType document-format "image/pwg-raster" - GROUP job-attributes-tag - ATTR keyword media iso_a4_210x297mm - GENERATE-FILE { - COLORSPACE auto - RESOLUTION max - NUM-PAGES 4 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_A4 - NAME "D-1.4 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} - -#### 1.5 US Letter TESTS #### -{ - SKIP-IF-NOT-DEFINED HAVE_LETTER - NAME "D-1.5 Print Letter PWG @ maximum resolution, auto" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-1.5 Letter PWG" - ATTR mimeMediaType document-format "image/pwg-raster" - GROUP job-attributes-tag - ATTR keyword media na_letter_8.5x11in - GENERATE-FILE { - COLORSPACE auto - RESOLUTION max - NUM-PAGES 4 - } - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_LETTER - NAME "D-1.5 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} - -#### JPEG Tests -{ - NAME "D-2. JPEG Tests (if color printing is supported)" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - - STATUS successful-ok - - EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 1 DEFINE-MATCH HAVE_COLOR - - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "image/jpeg" IF-DEFINED HAVE_COLOR -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.1 Print color.jpg with defaults" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-2.1 color.jpg with defaults" - ATTR mimeMediaType document-format "image/jpeg" - FILE "color.jpg" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.1 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.2 Print color.jpg with copies=2" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-2.2 color.jpg with copies=2" - ATTR mimeMediaType document-format "image/jpeg" - GROUP job-attributes-tag - ATTR integer copies 2 - FILE "color.jpg" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.2 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.3 Print color.jpg with print-color-mode=monochrome" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-2.3 color.jpg with print-color-mode=monochrome" - ATTR mimeMediaType document-format "image/jpeg" - GROUP job-attributes-tag - ATTR keyword print-color-mode monochrome - FILE "color.jpg" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.3 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.4 Print color.jpg with media=na_letter_8.5x11in and ipp-attribute-fidelity=true" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-2.4 color.jpg with media=na_letter_8.5x11in and ipp-attribute-fidelity=true" - ATTR mimeMediaType document-format "image/jpeg" - ATTR boolean ipp-attribute-fidelity true - GROUP job-attributes-tag - ATTR keyword media na_letter_8.5x11in - FILE "color.jpg" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.4 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.5 Print color.jpg with media=iso_a4_210x297mm and ipp-attribute-fidelity=true" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-2.5 color.jpg with media=iso_a4_210x297mm and ipp-attribute-fidelity=true" - ATTR mimeMediaType document-format "image/jpeg" - ATTR boolean ipp-attribute-fidelity true - GROUP job-attributes-tag - ATTR keyword media iso_a4_210x297mm - FILE "color.jpg" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_COLOR - NAME "D-2.5 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} - -#### PDF Tests -{ - NAME "D-3. PDF Tests (if PDF is supported)" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - - STATUS successful-ok - - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "application/pdf" DEFINE-MATCH HAVE_PDF - EXPECT sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "two-sided-long-edge" DEFINE-MATCH HAVE_DUPLEX -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.1 Print document-letter.pdf with defaults" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-3.1 document-letter.pdf with defaults" - ATTR mimeMediaType document-format "application/pdf" - FILE "document-letter.pdf" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.1 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.2 Print document-letter.pdf with copies=2" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-3.2 document-letter.pdf with copies=2" - ATTR mimeMediaType document-format "application/pdf" - GROUP job-attributes-tag - ATTR integer copies 2 - FILE "document-letter.pdf" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.2 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.3 Print document-letter.pdf with page-ranges=3-3 and print-color-mode=monochrome" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-3.3 document-letter.pdf with page-ranges=3-3 and print-color-mode=monochrome" - ATTR mimeMediaType document-format "application/pdf" - GROUP job-attributes-tag - ATTR rangeOfInteger page-ranges 3-3 - ATTR keyword print-color-mode monochrome - FILE "document-letter.pdf" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.3 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - SKIP-IF-NOT-DEFINED HAVE_DUPLEX - NAME "D-3.4 Print document-letter.pdf with sides=two-sided-long-edge" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-3.4 document-letter.pdf with sides=two-sided-long-edge" - ATTR mimeMediaType document-format "application/pdf" - GROUP job-attributes-tag - ATTR keyword sides two-sided-long-edge - FILE "document-letter.pdf" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.4 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.5 Print document-letter.pdf with media=iso_a4_210x297mm and ipp-attribute-fidelity=true" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-3.5 document-letter.pdf with media=iso_a4_210x297mm and ipp-attribute-fidelity=true" - ATTR mimeMediaType document-format "application/pdf" - ATTR boolean ipp-attribute-fidelity true - GROUP job-attributes-tag - ATTR keyword media iso_a4_210x297mm - FILE "document-letter.pdf" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.5 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.6 Print document-a4.pdf with media=na_letter_8.5x11in and ipp-attribute-fidelity=true" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "D-3.6 document-a4.pdf with media=na_letter_8.5x11in and ipp-attribute-fidelity=true" - ATTR mimeMediaType document-format "application/pdf" - ATTR boolean ipp-attribute-fidelity true - GROUP job-attributes-tag - ATTR keyword media na_letter_8.5x11in - FILE "document-a4.pdf" - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 -} -{ - SKIP-IF-NOT-DEFINED HAVE_PDF - NAME "D-3.6 Wait for job to complete..." - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH -} diff --git a/tests/ipp-tests.test b/tests/ipp-tests.test index dde19eb..e9c0ff4 100644 --- a/tests/ipp-tests.test +++ b/tests/ipp-tests.test @@ -26,7 +26,7 @@ # in the "printer-state-reasons" Printer attribute. # -FILE-ID "org.pwg.ippeveselfcert11.ipp" +FILE-ID "org.pwg.ippeveselfcert20.ipp" # All tests use IPP version 2.0, unless overridden in a test... VERSION 2.0 diff --git a/tests/ipp-tests.test.in b/tests/ipp-tests.test.in deleted file mode 100644 index 58585e1..0000000 --- a/tests/ipp-tests.test.in +++ /dev/null @@ -1,2099 +0,0 @@ -# -# IPP Everywhere Printer Self-Certification Manual 1.1: Section 6: IPP Tests. -# -# Copyright 2014-2022 by the IEEE-ISTO Printer Working Group. -# Copyright 2007-2019 by Apple Inc. -# Copyright 2001-2006 by Easy Software Products. All rights reserved. -# -# Licensed under Apache License v2.0. See the file "LICENSE" for more -# information. -# -# Usage: -# -# ./ipptool [-d STRICT=1] [-d IPP_EVERYWHERE_SERVER=1] -tI printer-uri ipp-tests.test -# -# The "-d STRICT=1" option makes certain tests more strict/pedantic. -# -# The "-d IPP_EVERYWHERE_SERVER=1" option disables certain tests that are -# optional for print servers ("Logical Devices"). -# -# History: -# -# This test file is loosely based on the IPP/1.1, IPP/2.0 and IPP Everywhere -# test files from the CUPS "examples" directory. Many of those tests have been -# combined or removed, and all print tests are performed using a generated PWG -# Raster file. These tests also validate support for the 'media-needed' keyword -# in the "printer-state-reasons" Printer attribute. -# - -FILE-ID "org.pwg.@IPPEVESELFCERT_VERSION@.ipp" - -# All tests use IPP version 2.0, unless overridden in a test... -VERSION 2.0 - -# Regular expressions for URI schemes: -# -# HTTP_URI_SCHEME - Matches strings beginning with http:// or https:// -# IPP_URI_SCHEME - Matches strings beginning with ipp:// or ipps:// -# UUID_URI - Matches UUID URN strings. - -DEFINE HTTP_URI_SCHEME "/^https?://.+$$/" -DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" -DEFINE LINK_LOCAL "/^(\[|\[v1.)fe80:/" -DEFINE UUID_URI "/^urn:uuid:[0-9A-Fa-f]{8,8}-[0-9A-Fa-f]{4,4}-[0-9A-Fa-f]{4,4}-[0-9A-Fa-f]{4,4}-[0-9A-Fa-f]{12,12}/" - -# Regular expressions for PWG media size names (eek!) -# -# MEDIA_REGEX is for supported media and MEDIA_READY_REGEX is for ready media -# where the long dimension can be 0 for roll-fed media. -# -# Generated with help from: http://abnf.msweet.org/ -DEFINE MEDIA_REGEX "/^(choice(_((custom|na|asme|roc|oe|roll)_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])in|(custom|iso|jis|jpn|prc|om|roll)_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])mm)){2,}|(custom|na|asme|roc|oe|roll)_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])in|(custom|iso|jis|jpn|prc|om|roll)_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])mm)$$/" - -DEFINE MEDIA_READY_REGEX "/^(choice(_((custom|na|asme|roc|oe)_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])in|(custom|iso|jis|jpn|prc|om)_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])mm)){2,}|(custom|na|asme|roc|oe)_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])in|(custom|iso|jis|jpn|prc|om)_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])mm|roll_[a-z0-9][-.a-z0-9]*_([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9])x([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9]|0)(in|mm))$$/" - -# Regular expression for printer-alert attribute -# -# Generated with help from: https://abnf.msweet.org/ -DEFINE ALERT_REGEX "/^code\=[A-Za-z]+(;index\=[0-9]+|;index\=-1|;severity\=[A-Za-z]+|;training\=[A-Za-z]+|;group\=[A-Za-z]+|;groupindex\=[0-9]+|;location\=[0-9]+|;time\=[0-9]+){0,};?$$/" - -# Regular expression for printer-supply attribute -# -# Generated with help from: https://abnf.msweet.org/ -DEFINE SUPPLY_REGEX "/^((type\=[A-Za-z]+;|maxcapacity\=-{0,1}[0-9]+;|level\=-{0,1}[0-9]+;|index\=[0-9]+;|markerindex\=[0-9]+;|class\=[A-Za-z]+;|unit\=[A-Za-z]+;|colorantindex\=[0-9]+;|colorantrole\=[A-Za-z]+;|colorantname\=[-_.A-Za-z0-9]+;|coloranttonality\=[0-9]+;){0,})$$/" - -# Test that a request-id value of 0 is not accepted. -# -# Required by: RFC 8011 section 4.1.1 -{ - NAME "I-1. RFC 8011 section 4.1.1: Bad request-id value 0" - REQUEST-ID 0 - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - - STATUS client-error-bad-request - EXPECT !printer-uri-supported -} - - -# Test that the first two attributes must be attributes-charset and -# attributes-natural-language. -# -# Required by: RFC 8011 section 4.1.4 -{ - NAME "I-2. RFC 8011 section 4.1.4: No Operation Attributes" - REQUEST-ID random - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - - STATUS client-error-bad-request - EXPECT !printer-uri-supported -} -{ - NAME "I-3. RFC 8011 section 4.1.4: attributes-charset" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR uri printer-uri $uri - - STATUS client-error-bad-request - EXPECT !printer-uri-supported -} -{ - NAME "I-4. RFC 8011 section 4.1.4: attributes-natural-language" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - - STATUS client-error-bad-request - EXPECT !printer-uri-supported -} -{ - NAME "I-5. RFC 8011 section 4.1.4: attributes-natural-language + attributes-charset" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR naturalLanguage attributes-natural-language en - ATTR charset attributes-charset utf-8 - ATTR uri printer-uri $uri - - STATUS client-error-bad-request - EXPECT !printer-uri-supported -} -{ - NAME "I-6. RFC 8011 section 4.1.4: attributes-charset + attributes-natural-language" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - - STATUS successful-ok - EXPECT printer-uri-supported OF-TYPE uri WITH-ALL-VALUES "$IPP_URI_SCHEME" - EXPECT operations-supported WITH-VALUE 0x003c # Identify-Printer - DEFINE-MATCH HAVE_IDENTIFY_PRINTER -} - - -# Test that bad IPP versions are not supported. -# -# Required by: RFC 8011 section 4.1.8 -{ - # The name of the test... - NAME "I-7. RFC 8011 section 4.1.8: Unsupported IPP version 0.0" - VERSION 0.0 - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - - STATUS server-error-version-not-supported - EXPECT !printer-uri-supported -} - - -# Test that printer operations require the printer-uri operation attribute. -# -# Required by: RFC 8011 section 4.2 -{ - NAME "I-8. RFC 8011 section 4.2: No printer-uri operation attribute" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - - STATUS client-error-bad-request - EXPECT !printer-uri-supported -} - - -# Test Identify-Printer operation -# -# Required by: PWG 5100.14 Section 5.x -{ - SKIP-IF-NOT-DEFINED HAVE_IDENTIFY_PRINTER - - NAME "I-9. Identify-Printer Operation" - OPERATION Identify-Printer - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - - STATUS successful-ok -} - - -# Test Get-Printer-Attributes operation -# -# Required by: PWG 5100.14 Section 5.x -{ - NAME "I-10. Get-Printer-Attributes Operation (default)" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - - STATUS successful-ok - - # ipp-features-supported - EXPECT ipp-features-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "ipp-everywhere" - EXPECT ipp-features-supported WITH-VALUE "ipp-everywhere-server" DEFINE-MATCH IPP_EVERYWHERE_SERVER - - ##### PWG 5100.14 - Table 5 - Operations - EXPECT operations-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 0x0002 # Print-Job - EXPECT operations-supported WITH-VALUE 0x0004 # Validate-Job - EXPECT operations-supported WITH-VALUE 0x0005 # Create-Job - EXPECT operations-supported WITH-VALUE 0x0006 # Send-Document - EXPECT operations-supported WITH-VALUE 0x0008 # Cancel-Job - EXPECT operations-supported WITH-VALUE 0x0009 # Get-Job-Attributes - EXPECT operations-supported WITH-VALUE 0x000a # Get-Jobs - EXPECT operations-supported WITH-VALUE 0x000b # Get-Printer-Attributes - EXPECT operations-supported WITH-VALUE 0x0039 # Cancel-My-Jobs - EXPECT operations-supported WITH-VALUE 0x003b # Close-Job - EXPECT operations-supported WITH-VALUE 0x003c # Identify-Printer - IF-NOT-DEFINED IPP_EVERYWHERE_SERVER - - # Default Get-Printer-Attributes MUST NOT return media-col-database, per PWG 5100.7 (JOBEXT) - EXPECT !media-col-database OF-TYPE collection IN-GROUP printer-attributes-tag - - #### PWG 5100.14 - Table 6 - Printer Description Attributes that are part of the 'printer-description' group - EXPECT charset-configured OF-TYPE charset IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT charset-supported OF-TYPE charset IN-GROUP printer-attributes-tag WITH-VALUE utf-8 - - EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - EXPECT color-supported WITH-VALUE true DEFINE-MATCH HAVE_COLOR - - EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "none" - EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "deflate" DEFINE-MATCH HAVE_DEFLATE - EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "gzip" DEFINE-MATCH HAVE_GZIP - - EXPECT document-format-default OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag COUNT 1 - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "image/pwg-raster" - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "image/jpeg" IF-DEFINED HAVE_COLOR - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "image/jpeg" DEFINE-MATCH HAVE_JPEG - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "application/pdf" DEFINE-MATCH HAVE_PDF - - EXPECT document-password-supported OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED HAVE_PDF - - EXPECT generated-natural-language-supported OF-TYPE naturalLanguage IN-GROUP printer-attributes-tag - - EXPECT identify-actions-default OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(display|flash|sound|speak)$/" IF-DEFINED HAVE_IDENTIFY_PRINTER - EXPECT identify-actions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(display|flash|sound|speak)$/" IF-DEFINED HAVE_IDENTIFY_PRINTER - - EXPECT ipp-versions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "2.0" - - EXPECT job-constraints-supported OF-TYPE collection IN-GROUP printer-attributes-tag DEFINE-MATCH HAVE_JOB_CONSTRAINTS - - EXPECT job-creation-attributes-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(media|print-color-mode)$$/" - - EXPECT job-ids-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true - - # TODO: Make job-password-xxx conditionally required if the printer supports "Print to a Recipient" (???) - EXPECT job-password-supported OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 DEFINE-MATCH PRINT_TO_A_RECIPIENT - EXPECT job-password-encryption-supported OF-TYPE keyword IN-GROUP printer-attributes-tag IF-DEFINED PRINT_TO_A_RECIPIENT - - EXPECT job-resolvers-supported OF-TYPE collection IN-GROUP printer-attributes-tag IF-DEFINED HAVE_JOB_CONSTRAINTS - - EXPECT multiple-document-jobs-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT multiple-operation-time-out OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - - EXPECT multiple-operation-time-out-action OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(abort-job|hold-job|process-job)$/" - - EXPECT natural-language-configured OF-TYPE naturalLanguage IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT operations-supported OF-TYPE enum IN-GROUP printer-attributes-tag - - EXPECT pages-per-minute OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT pages-per-minute-color OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED HAVE_COLOR - EXPECT !pages-per-minute-color IF-NOT-DEFINED HAVE_COLOR - - EXPECT pdl-override-supported OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT preferred-attributes-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT ?printer-alert OF-TYPE octetString IN-GROUP printer-attributes-tag - EXPECT ?printer-alert OF-TYPE octetString COUNT 1 WITH-VALUE "" DEFINE-MATCH HAVE_EMPTY_PRINTER_ALERT - EXPECT ?printer-alert WITH-ALL-VALUES "$ALERT_REGEX" IF-NOT-DEFINED HAVE_EMPTY_PRINTER_ALERT - EXPECT ?printer-alert-description OF-TYPE text IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-alert - - EXPECT ?printer-charge-info OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 DEFINE-MATCH HAVE_CHARGE_INFO - EXPECT printer-charge-info-uri OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED HAVE_CHARGE_INFO - - EXPECT printer-config-change-date-time OF-TYPE dateTime|unknown|no-value IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT printer-config-change-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >-1 - - EXPECT printer-current-time OF-TYPE dateTime|unknown|no-value IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT printer-geo-location OF-TYPE uri|unknown IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^geo:/" - - EXPECT printer-get-attributes-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "document-format" - - EXPECT printer-icc-profiles-supported OF-TYPE collection IN-GROUP printer-attributes-tag DEFINE-MATCH HAVE_ICC_PROFILES - EXPECT-ALL printer-icc-profiles-supported/profile-name OF-TYPE name COUNT 1 IF-DEFINED HAVE_ICC_PROFILES - EXPECT-ALL printer-icc-profiles-supported/profile-uri OF-TYPE uri COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" IF-DEFINED HAVE_ICC_PROFILES - - EXPECT printer-icons OF-TYPE uri IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$HTTP_URI_SCHEME" - EXPECT printer-icons OF-TYPE uri WITH-ALL-HOSTNAMES "$hostname" - - EXPECT printer-info OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - - EXPECT printer-is-accepting-jobs OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT printer-location OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - - EXPECT printer-make-and-model OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - - EXPECT printer-more-info OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" - EXPECT printer-more-info WITH-HOSTNAME "$hostname" - # EXPECT !printer-more-info WITH-HOSTNAME "$LINK_LOCAL" - # TODO: Provide warnings when hostname doesn't match - - EXPECT printer-name OF-TYPE name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - - EXPECT printer-organization OF-TYPE text IN-GROUP printer-attributes-tag - - EXPECT printer-organizational-unit OF-TYPE text IN-GROUP printer-attributes-tag - - EXPECT printer-state OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 - - EXPECT printer-state-change-date-time OF-TYPE dateTime|unknown|no-value IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT printer-state-change-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >-1 - - EXPECT printer-state-message OF-TYPE text IN-GROUP printer-attributes-tag - - EXPECT printer-state-reasons OF-TYPE keyword IN-GROUP printer-attributes-tag - - EXPECT printer-supply DEFINE-MATCH HAVE_PRINTER_SUPPLY - EXPECT printer-supply-description DEFINE-MATCH HAVE_PRINTER_SUPPLY - - EXPECT printer-supply OF-TYPE octetString IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$SUPPLY_REGEX" IF-DEFINED HAVE_PRINTER_SUPPLY - - EXPECT printer-supply-description OF-TYPE text IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-supply IF-DEFINED HAVE_PRINTER_SUPPLY - - EXPECT printer-supply-info-uri OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-supply-info-uri WITH-HOSTNAME "$hostname" IF-DEFINED HAVE_PRINTER_SUPPLY - # EXPECT !printer-supply-info-uri WITH-HOSTNAME "$LINK_LOCAL" - - EXPECT printer-up-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - - EXPECT printer-uri-supported OF-TYPE uri IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-security-supported WITH-ALL-VALUES "$IPP_URI_SCHEME" - # EXPECT !printer-uri-supported WITH-HOSTNAME "$LINK_LOCAL" - - EXPECT printer-uuid OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$UUID_URI" - - EXPECT pwg-raster-document-resolution-supported OF-TYPE resolution IN-GROUP printer-attributes-tag - EXPECT pwg-raster-document-resolution-supported DEFINE-VALUE RASTER_RESOLUTION - - EXPECT sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^two-sided-(long|short)-edge$$/" DEFINE-MATCH HAVE_DUPLEX - EXPECT pwg-raster-document-sheet-back OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(flipped|manual-tumble|normal|rotated)$$/" IF-DEFINED HAVE_DUPLEX - - EXPECT pwg-raster-document-type-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT pwg-raster-document-type-supported WITH-VALUE "black_1" DEFINE-MATCH HAVE_BLACK - EXPECT pwg-raster-document-type-supported WITH-VALUE "sgray_8" DEFINE-MATCH HAVE_SGRAY - EXPECT pwg-raster-document-type-supported WITH-VALUE "srgb_8" DEFINE-MATCH HAVE_SRGB - - EXPECT queued-job-count OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT uri-authentication-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - - EXPECT uri-security-supported OF-TYPE keyword IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-authentication-supported - - EXPECT which-jobs-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "completed" - EXPECT which-jobs-supported WITH-VALUE "not-completed" - - - #### PWG 5100.14 - Table 6 - Printer Description Attributes that are part of the 'job-template' group - EXPECT copies-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT copies-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag - - EXPECT finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE >3 DEFINE-MATCH HAVE_FINISHINGS - - EXPECT finishing-template-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_FINISHINGS - - EXPECT finishings-col-database OF-TYPE collection IN-GROUP printer-attributes-tag IF-DEFINED HAVE_FINISHINGS - EXPECT finishings-col-database/finishing-template OF-TYPE keyword|name IF-DEFINED HAVE_FINISHINGS - - EXPECT finishings-col-default OF-TYPE collection|no-value IN-GROUP printer-attributes-tag IF-DEFINED HAVE_FINISHINGS - EXPECT finishings-col-default OF-TYPE collection IN-GROUP printer-attributes-tag DEFINE-MATCH HAVE_COL_IN_FINISHINGS_COL_DEFAULT - EXPECT finishings-col-default/finishing-template OF-TYPE keyword|name IF-DEFINED HAVE_COL_IN_FINISHINGS_COL_DEFAULT - - EXPECT finishings-col-ready OF-TYPE collection IN-GROUP printer-attributes-tag IF-DEFINED HAVE_FINISHINGS - EXPECT finishings-col-ready/finishing-template OF-TYPE keyword|name IF-DEFINED HAVE_FINISHINGS - - EXPECT finishings-col-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "finishing-template" IF-DEFINED HAVE_FINISHINGS - - EXPECT finishings-default OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE-FROM "finishings-supported" IF-DEFINED HAVE_FINISHINGS - - EXPECT ?finishings-ready OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE-FROM "finishings-supported" - - EXPECT finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag IF-DEFINED HAVE_FINISHINGS - EXPECT finishings-supported WITH-VALUE 3 IF-DEFINED HAVE_FINISHINGS - - EXPECT job-account-id-supported OF-TYPE boolean IN-GROUP printer-attributes-tag WITH-VALUE true COUNT 1 DEFINE-MATCH HAVE_JOB_ACCOUNT_ID - EXPECT job-account-id-default OF-TYPE name|no-value IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED HAVE_JOB_ACCOUNT_ID - - EXPECT job-accounting-user-id-supported OF-TYPE boolean IN-GROUP printer-attributes-tag WITH-VALUE true COUNT 1 DEFINE-MATCH HAVE_JOB_ACCOUNTING_USER_ID - EXPECT job-accounting-user-id-default OF-TYPE name|no-value IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED HAVE_JOB_ACCOUNTING_USER_ID - - EXPECT media-bottom-margin-supported OF-TYPE integer IN-GROUP printer-attributes-tag WITH-ALL-VALUES >-1 - - EXPECT media-col-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT media-col-supported WITH-VALUE "media-size" - - EXPECT media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$MEDIA_REGEX" - EXPECT media-default WITH-VALUE "$MEDIA_REGEX" DEFINE-VALUE DEFAULT_MEDIA - - EXPECT media-left-margin-supported OF-TYPE integer IN-GROUP printer-attributes-tag WITH-ALL-VALUES >-1 - - EXPECT media-ready OF-TYPE keyword|name|no-value IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$MEDIA_READY_REGEX" - - EXPECT media-right-margin-supported OF-TYPE integer IN-GROUP printer-attributes-tag WITH-ALL-VALUES >-1 - - EXPECT media-size-supported OF-TYPE collection IN-GROUP printer-attributes-tag - EXPECT-ALL media-size-supported/x-dimension OF-TYPE integer|rangeOfInteger - EXPECT-ALL media-size-supported/y-dimension OF-TYPE integer|rangeOfInteger - - EXPECT media-source-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag DEFINE-MATCH HAVE_MEDIA_SOURCE - EXPECT media-col-supported WITH-VALUE "media-source" IF-DEFINED HAVE_MEDIA_SOURCE - - EXPECT media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$MEDIA_REGEX" - - EXPECT media-top-margin-supported OF-TYPE integer IN-GROUP printer-attributes-tag WITH-ALL-VALUES >-1 - - EXPECT media-type-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag DEFINE-MATCH HAVE_MEDIA_TYPE - EXPECT media-col-supported WITH-VALUE "media-type" IF-DEFINED HAVE_MEDIA_TYPE - - EXPECT media-col-default OF-TYPE collection IN-GROUP printer-attributes-tag COUNT 1 - EXPECT media-col-default/media-size OF-TYPE collection COUNT 1 - EXPECT media-col-default/media-size/x-dimension OF-TYPE integer COUNT 1 WITH-VALUE >0 - EXPECT media-col-default/media-size/y-dimension OF-TYPE integer COUNT 1 WITH-VALUE >0 - EXPECT media-col-default/media-source OF-TYPE keyword|name COUNT 1 IF-DEFINED HAVE_MEDIA_SOURCE - EXPECT media-col-default/media-type OF-TYPE keyword|name COUNT 1 IF-DEFINED HAVE_MEDIA_TYPE - - EXPECT media-col-ready OF-TYPE collection|no-value IN-GROUP printer-attributes-tag - EXPECT-ALL media-col-ready/media-size OF-TYPE collection COUNT 1 - EXPECT-ALL media-col-ready/media-size/x-dimension OF-TYPE integer|rangeOfInteger COUNT 1 WITH-VALUE >0 - EXPECT-ALL media-col-ready/media-size/y-dimension OF-TYPE integer|rangeOfInteger COUNT 1 WITH-VALUE >-1 - EXPECT-ALL media-col-ready/media-source OF-TYPE keyword|name COUNT 1 IF-DEFINED HAVE_MEDIA_SOURCE - EXPECT-ALL ?media-col-ready/media-source-properties OF-TYPE collection COUNT 1 - EXPECT-ALL media-col-ready/media-type OF-TYPE keyword|name COUNT 1 IF-DEFINED HAVE_MEDIA_TYPE - - EXPECT orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "orientation-requested-supported" - EXPECT orientation-requested-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6,7 - - EXPECT output-bin-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "output-bin-supported" - EXPECT output-bin-default DEFINE-VALUE DEFAULT_OUTPUT_BIN - EXPECT output-bin-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag - - EXPECT overrides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "pages" IF-DEFINED HAVE_PDF - - EXPECT page-ranges-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true IF-DEFINED HAVE_PDF - - EXPECT print-color-mode-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "print-color-mode-supported" - EXPECT print-color-mode-default DEFINE-VALUE DEFAULT_PRINT_COLOR_MODE - EXPECT print-color-mode-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(auto|auto-monochrome|bi-level|color|highlight|monochrome|process-bi-level|process-monochrome)$/" - - EXPECT ?print-content-optimize-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(auto|graphic|photo|text|text-and-graphic)$/" - EXPECT print-content-optimize-supported DEFINE-MATCH HAVE_PRINT_CONTENT_OPTIMIZE - EXPECT print-content-optimize-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "print-content-optimize-supported" IF-DEFINED HAVE_PRINT_CONTENT_OPTIMIZE - - EXPECT print-quality-default OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "print-quality-supported" - EXPECT print-quality-default DEFINE-VALUE DEFAULT_PRINT_QUALITY - EXPECT print-quality-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5 - - EXPECT print-rendering-intent-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "print-rendering-intent-supported" IF-DEFINED HAVE_ICC_PROFILES - EXPECT print-rendering-intent-default DEFINE-VALUE DEFAULT_PRINT_RENDERING_INTENT - EXPECT print-rendering-intent-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(auto|absolute|perceptual|relative|relative-bpc|saturation)$/" IF-DEFINED HAVE_ICC_PROFILES - - EXPECT printer-resolution-default OF-TYPE resolution IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "printer-resolution-supported" - EXPECT printer-resolution-default DEFINE-VALUE DEFAULT_PRINTER_RESOLUTION - EXPECT printer-resolution-supported OF-TYPE resolution IN-GROUP printer-attributes-tag - - EXPECT sides-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "sides-supported" - EXPECT sides-default DEFINE-VALUE DEFAULT_SIDES - EXPECT sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" - - # Recommended attributes - EXPECT ?job-account-type-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "job-account-type-supported" - EXPECT ?job-account-type-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - - EXPECT ?job-authorization-uri-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT ?job-mandatory-attributes-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT ?job-password-repertoire-configured OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "job-password-repertoire-supported" - EXPECT ?job-password-repertoire-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - - EXPECT ?job-presets-supported OF-TYPE collection IN-GROUP printer-attributes-tag - - EXPECT ?job-privacy-attributes OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT ?job-privacy-scope OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(all|default|owner|none)$$/" - EXPECT ?printer-privacy-policy-uri OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT ?jpeg-features-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT ?jpeg-k-octets-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?jpeg-x-dimension-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?jpeg-y-dimension-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT ?pdf-k-octets-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?pdf-versions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - - EXPECT ?print-scaling-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM "print-scaling-supported" - EXPECT ?print-scaling-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - - EXPECT ?printer-dns-sd-name OF-TYPE name IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT ?printer-input-tray OF-TYPE octetString IN-GROUP printer-attributes-tag SAME-COUNT-AS "media-source-supported" - EXPECT ?printer-output-tray OF-TYPE octetString IN-GROUP printer-attributes-tag SAME-COUNT-AS "output-bin-supported" -} - -# -# Test different values of requested-attributes -# -{ - NAME "I-10.1 Get-Printer-Attributes Operation (all)" - - OPERATION Get-Printer-Attributes - - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - ATTR keyword requested-attributes 'all' - - STATUS successful-ok - - # 'media-col-database' attribute should never be returned unless - # explicitly requested... - EXPECT !media-col-database - - # 'printer-description' attributes - EXPECT charset-configured - EXPECT charset-supported - EXPECT color-supported - EXPECT compression-supported - EXPECT document-format-default - EXPECT document-format-supported - EXPECT generated-natural-language-supported - EXPECT identify-actions-default - EXPECT identify-actions-supported - EXPECT ipp-features-supported - EXPECT ipp-versions-supported - EXPECT job-constraints-supported IF-DEFINED HAVE_JOB_CONSTRAINTS - EXPECT job-creation-attributes-supported - EXPECT job-ids-supported - EXPECT job-password-supported IF-DEFINED HAVE_PRINT_TO_A_RECIPIENT - EXPECT job-password-encryption-supported IF-DEFINED HAVE_PRINT_TO_A_RECIPIENT - EXPECT job-resolvers-supported IF-DEFINED HAVE_JOB_CONSTRAINTS - EXPECT multiple-document-jobs-supported - EXPECT multiple-operation-time-out - EXPECT multiple-operation-time-out-action - EXPECT natural-language-configured - EXPECT operations-supported - EXPECT pages-per-minute - EXPECT pages-per-minute-color IF-DEFINED HAVE_COLOR - EXPECT !pages-per-minute-color IF-NOT-DEFINED HAVE_COLOR - EXPECT pdl-override-supported - EXPECT preferred-attributes-supported - EXPECT printer-charge-info-uri IF-DEFINED HAVE_CHARGE_INFO - EXPECT printer-config-change-date-time - EXPECT printer-config-change-time - EXPECT printer-current-time - EXPECT printer-geo-location - EXPECT printer-get-attributes-supported - EXPECT printer-icc-profiles-supported IF-DEFINED HAVE_ICC_PROFILES - EXPECT printer-icons - EXPECT printer-info - EXPECT printer-is-accepting-jobs - EXPECT printer-location - EXPECT printer-make-and-model - EXPECT printer-more-info - EXPECT printer-name - EXPECT printer-organization - EXPECT printer-organizational-unit - EXPECT printer-state - EXPECT printer-state-change-date-time - EXPECT printer-state-change-time - EXPECT printer-state-message - EXPECT printer-state-reasons - EXPECT printer-supply IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-supply-description IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-supply-info-uri IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-up-time - EXPECT printer-uri-supported - EXPECT printer-uuid - EXPECT pwg-raster-document-resolution-supported - EXPECT pwg-raster-document-sheet-back IF-DEFINED HAVE_DUPLEX - EXPECT pwg-raster-document-type-supported - EXPECT queued-job-count - EXPECT uri-authentication-supported - EXPECT uri-security-supported - EXPECT which-jobs-supported - - # 'job-template' attributes - EXPECT copies-default - EXPECT copies-supported - EXPECT finishings-default IF-DEFINED HAVE_FINISHINGS - EXPECT finishings-supported IF-DEFINED HAVE_FINISHINGS - EXPECT media-bottom-margin-supported - EXPECT media-col-default - EXPECT media-col-ready - EXPECT media-col-supported - EXPECT media-default - EXPECT media-left-margin-supported - EXPECT media-ready - EXPECT media-right-margin-supported - EXPECT media-size-supported - EXPECT media-source-supported IF-DEFINED HAVE_MEDIA_SOURCE - EXPECT media-supported - EXPECT media-top-margin-supported - EXPECT media-type-supported IF-DEFINED HAVE_MEDIA_TYPE - EXPECT orientation-requested-default - EXPECT orientation-requested-supported - EXPECT output-bin-default - EXPECT output-bin-supported - EXPECT overrides-supported IF-DEFINED HAVE_PDF - EXPECT page-ranges-supported IF-DEFINED HAVE_PDF - EXPECT print-color-mode-default - EXPECT print-color-mode-supported - EXPECT print-content-optimize-default IF-DEFINED HAVE_PRINT_CONTENT_OPTIMIZE - EXPECT print-content-optimize-supported IF-DEFINED HAVE_PRINT_CONTENT_OPTIMIZE - EXPECT print-quality-default - EXPECT print-quality-supported - EXPECT print-rendering-intent-default IF-DEFINED HAVE_ICC_PROFILES - EXPECT print-rendering-intent-supported IF-DEFINED HAVE_ICC_PROFILES - EXPECT printer-resolution-default - EXPECT printer-resolution-supported - EXPECT sides-default IF-DEFINED HAVE_DUPLEX - EXPECT sides-supported IF-DEFINED HAVE_DUPLEX -} -{ - NAME "I-10.2. Get-Printer-Attributes Operation (all, media-col-database)" - - OPERATION Get-Printer-Attributes - - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - ATTR keyword requested-attributes all,media-col-database - - STATUS successful-ok - - # 'media-col-database' attribute should never be returned unless - # explicitly requested... - EXPECT media-col-database OF-TYPE collection IN-GROUP printer-attributes-tag - - # 'printer-description' attributes - EXPECT charset-configured - EXPECT charset-supported - EXPECT color-supported - EXPECT compression-supported - EXPECT document-format-default - EXPECT document-format-supported - EXPECT generated-natural-language-supported - EXPECT identify-actions-default - EXPECT identify-actions-supported - EXPECT ipp-features-supported - EXPECT ipp-versions-supported - EXPECT job-constraints-supported IF-DEFINED HAVE_JOB_CONSTRAINTS - EXPECT job-creation-attributes-supported - EXPECT job-ids-supported - EXPECT job-password-supported IF-DEFINED HAVE_PRINT_TO_A_RECIPIENT - EXPECT job-password-encryption-supported IF-DEFINED HAVE_PRINT_TO_A_RECIPIENT - EXPECT job-resolvers-supported IF-DEFINED HAVE_JOB_CONSTRAINTS - EXPECT multiple-document-jobs-supported - EXPECT multiple-operation-time-out - EXPECT multiple-operation-time-out-action - EXPECT natural-language-configured - EXPECT operations-supported - EXPECT pages-per-minute - EXPECT pages-per-minute-color IF-DEFINED HAVE_COLOR - EXPECT !pages-per-minute-color IF-NOT-DEFINED HAVE_COLOR - EXPECT pdl-override-supported - EXPECT preferred-attributes-supported - EXPECT printer-charge-info-uri IF-DEFINED HAVE_CHARGE_INFO - EXPECT printer-config-change-date-time - EXPECT printer-config-change-time - EXPECT printer-current-time - EXPECT printer-geo-location - EXPECT printer-get-attributes-supported - EXPECT printer-icc-profiles-supported IF-DEFINED HAVE_ICC_PROFILES - EXPECT printer-icons - EXPECT printer-info - EXPECT printer-is-accepting-jobs - EXPECT printer-location - EXPECT printer-make-and-model - EXPECT printer-more-info - EXPECT printer-name - EXPECT printer-organization - EXPECT printer-organizational-unit - EXPECT printer-state - EXPECT printer-state-change-date-time - EXPECT printer-state-change-time - EXPECT printer-state-message - EXPECT printer-state-reasons - EXPECT printer-supply IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-supply-description IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-supply-info-uri IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-up-time - EXPECT printer-uri-supported - EXPECT printer-uuid - EXPECT pwg-raster-document-resolution-supported - EXPECT pwg-raster-document-sheet-back IF-DEFINED HAVE_DUPLEX - EXPECT pwg-raster-document-type-supported - EXPECT queued-job-count - EXPECT uri-authentication-supported - EXPECT uri-security-supported - EXPECT which-jobs-supported - - # 'job-template' attributes - EXPECT copies-default - EXPECT copies-supported - EXPECT finishings-default IF-DEFINED HAVE_FINISHINGS - EXPECT finishings-supported IF-DEFINED HAVE_FINISHINGS - EXPECT media-bottom-margin-supported - EXPECT media-col-default - EXPECT media-col-ready - EXPECT media-col-supported - EXPECT media-default - EXPECT media-left-margin-supported - EXPECT media-ready - EXPECT media-right-margin-supported - EXPECT media-size-supported - EXPECT media-source-supported IF-DEFINED HAVE_MEDIA_SOURCE - EXPECT media-supported - EXPECT media-top-margin-supported - EXPECT media-type-supported IF-DEFINED HAVE_MEDIA_TYPE - EXPECT orientation-requested-default - EXPECT orientation-requested-supported - EXPECT output-bin-default - EXPECT output-bin-supported - EXPECT overrides-supported IF-DEFINED HAVE_PDF - EXPECT page-ranges-supported IF-DEFINED HAVE_PDF - EXPECT print-color-mode-default - EXPECT print-color-mode-supported - EXPECT print-content-optimize-default IF-DEFINED HAVE_PRINT_CONTENT_OPTIMIZE - EXPECT print-content-optimize-supported IF-DEFINED HAVE_PRINT_CONTENT_OPTIMIZE - EXPECT print-quality-default - EXPECT print-quality-supported - EXPECT print-rendering-intent-default IF-DEFINED HAVE_ICC_PROFILES - EXPECT print-rendering-intent-supported IF-DEFINED HAVE_ICC_PROFILES - EXPECT printer-resolution-default - EXPECT printer-resolution-supported - EXPECT sides-default IF-DEFINED HAVE_DUPLEX - EXPECT sides-supported IF-DEFINED HAVE_DUPLEX -} - -{ - NAME "I-10.3. Get-Printer-Attributes Operation (none)" - - OPERATION Get-Printer-Attributes - - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - ATTR keyword requested-attributes 'none' - - STATUS successful-ok - STATUS successful-ok-ignored-or-substituted-attributes DEFINE-MATCH HAVE_IGNORED - - # 'media-col-database' attribute should never be returned unless - # explicitly requested... - EXPECT !media-col-database - - # 'printer-description' attributes - EXPECT !charset-configured IF-NOT-DEFINED HAVE_IGNORED - EXPECT !charset-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !color-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !compression-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !document-format-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !document-format-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !generated-natural-language-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !identify-actions-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !identify-actions-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !ipp-features-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !ipp-versions-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !job-constraints-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !job-creation-attributes-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !job-ids-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !job-password-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !job-password-encryption-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !job-resolvers-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !multiple-document-jobs-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !multiple-operation-time-out IF-NOT-DEFINED HAVE_IGNORED - EXPECT !multiple-operation-time-out-action IF-NOT-DEFINED HAVE_IGNORED - EXPECT !natural-language-configured IF-NOT-DEFINED HAVE_IGNORED - EXPECT !operations-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !pages-per-minute IF-NOT-DEFINED HAVE_IGNORED - EXPECT !pages-per-minute-color IF-NOT-DEFINED HAVE_IGNORED - EXPECT !!pages-per-minute-color IF-NOT-DEFINED HAVE_IGNORED - EXPECT !pdl-override-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !preferred-attributes-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-charge-info-uri IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-config-change-date-time IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-config-change-time IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-current-time IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-geo-location IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-get-attributes-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-icc-profiles-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-icons IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-info IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-is-accepting-jobs IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-location IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-make-and-model IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-more-info IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-name IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-organization IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-organizational-unit IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-state IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-state-change-date-time IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-state-change-time IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-state-message IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-state-reasons IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-supply IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-supply-description IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-supply-info-uri IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-up-time IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-uri-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-uuid IF-NOT-DEFINED HAVE_IGNORED - EXPECT !pwg-raster-document-resolution-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !pwg-raster-document-sheet-back IF-NOT-DEFINED HAVE_IGNORED - EXPECT !pwg-raster-document-type-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !queued-job-count IF-NOT-DEFINED HAVE_IGNORED - EXPECT !uri-authentication-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !uri-security-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !which-jobs-supported IF-NOT-DEFINED HAVE_IGNORED - - # 'job-template' attributes - EXPECT !copies-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !copies-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !finishings-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !finishings-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-bottom-margin-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-col-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-col-ready IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-col-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-left-margin-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-ready IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-right-margin-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-size-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-source-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-top-margin-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !media-type-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !orientation-requested-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !orientation-requested-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !output-bin-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !output-bin-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !overrides-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !page-ranges-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !print-color-mode-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !print-color-mode-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !print-content-optimize-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !print-content-optimize-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !print-quality-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !print-quality-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !print-rendering-intent-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !print-rendering-intent-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-resolution-default IF-NOT-DEFINED HAVE_IGNORED - EXPECT !printer-resolution-supported IF-NOT-DEFINED HAVE_IGNORED - EXPECT !sides-default IF-DEFINED HAVE_DUPLEX IF-NOT-DEFINED HAVE_IGNORED - EXPECT !sides-supported IF-DEFINED HAVE_DUPLEX IF-NOT-DEFINED HAVE_IGNORED -} - -{ - NAME "I-10.4. Get-Printer-Attributes Operation (media-col-database)" - - OPERATION Get-Printer-Attributes - - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - ATTR keyword requested-attributes 'media-col-database' - - STATUS successful-ok - - # 'media-col-database' attribute should never be returned unless - # explicitly requested... - EXPECT media-col-database OF-TYPE collection IN-GROUP printer-attributes-tag - - ## Issue #50: Relax Get-Printer-Attributes tests - # 'printer-description' attributes - EXPECT !charset-configured IF-DEFINED STRICT - EXPECT !charset-supported IF-DEFINED STRICT - EXPECT !color-supported IF-DEFINED STRICT - EXPECT !compression-supported IF-DEFINED STRICT - EXPECT !document-format-default IF-DEFINED STRICT - EXPECT !document-format-supported IF-DEFINED STRICT - EXPECT !generated-natural-language-supported IF-DEFINED STRICT - EXPECT !identify-actions-default IF-DEFINED STRICT - EXPECT !identify-actions-supported IF-DEFINED STRICT - EXPECT !ipp-features-supported IF-DEFINED STRICT - EXPECT !ipp-versions-supported IF-DEFINED STRICT - EXPECT !job-constraints-supported IF-DEFINED STRICT - EXPECT !job-creation-attributes-supported IF-DEFINED STRICT - EXPECT !job-ids-supported IF-DEFINED STRICT - EXPECT !job-password-supported IF-DEFINED STRICT - EXPECT !job-password-encryption-supported IF-DEFINED STRICT - EXPECT !job-resolvers-supported IF-DEFINED STRICT - EXPECT !multiple-document-jobs-supported IF-DEFINED STRICT - EXPECT !multiple-operation-time-out IF-DEFINED STRICT - EXPECT !multiple-operation-time-out-action IF-DEFINED STRICT - EXPECT !natural-language-configured IF-DEFINED STRICT - EXPECT !operations-supported IF-DEFINED STRICT - EXPECT !pages-per-minute IF-DEFINED STRICT - EXPECT !pages-per-minute-color IF-DEFINED STRICT - EXPECT !!pages-per-minute-color IF-DEFINED STRICT - EXPECT !pdl-override-supported IF-DEFINED STRICT - EXPECT !preferred-attributes-supported IF-DEFINED STRICT - EXPECT !printer-charge-info-uri IF-DEFINED STRICT - EXPECT !printer-config-change-date-time IF-DEFINED STRICT - EXPECT !printer-config-change-time IF-DEFINED STRICT - EXPECT !printer-current-time IF-DEFINED STRICT - EXPECT !printer-geo-location IF-DEFINED STRICT - EXPECT !printer-get-attributes-supported IF-DEFINED STRICT - EXPECT !printer-icc-profiles-supported IF-DEFINED STRICT - EXPECT !printer-icons IF-DEFINED STRICT - EXPECT !printer-info IF-DEFINED STRICT - EXPECT !printer-is-accepting-jobs IF-DEFINED STRICT - EXPECT !printer-location IF-DEFINED STRICT - EXPECT !printer-make-and-model IF-DEFINED STRICT - EXPECT !printer-more-info IF-DEFINED STRICT - EXPECT !printer-name IF-DEFINED STRICT - EXPECT !printer-organization IF-DEFINED STRICT - EXPECT !printer-organizational-unit IF-DEFINED STRICT - EXPECT !printer-state IF-DEFINED STRICT - EXPECT !printer-state-change-date-time IF-DEFINED STRICT - EXPECT !printer-state-change-time IF-DEFINED STRICT - EXPECT !printer-state-message IF-DEFINED STRICT - EXPECT !printer-state-reasons IF-DEFINED STRICT - EXPECT !printer-supply IF-DEFINED STRICT - EXPECT !printer-supply-description IF-DEFINED STRICT - EXPECT !printer-supply-info-uri IF-DEFINED STRICT - EXPECT !printer-up-time IF-DEFINED STRICT - EXPECT !printer-uri-supported IF-DEFINED STRICT - EXPECT !printer-uuid IF-DEFINED STRICT - EXPECT !pwg-raster-document-resolution-supported IF-DEFINED STRICT - EXPECT !pwg-raster-document-sheet-back IF-DEFINED STRICT - EXPECT !pwg-raster-document-type-supported IF-DEFINED STRICT - EXPECT !queued-job-count IF-DEFINED STRICT - EXPECT !uri-authentication-supported IF-DEFINED STRICT - EXPECT !uri-security-supported IF-DEFINED STRICT - EXPECT !which-jobs-supported IF-DEFINED STRICT - - # 'job-template' attributes - EXPECT !copies-default IF-DEFINED STRICT - EXPECT !copies-supported IF-DEFINED STRICT - EXPECT !finishings-default IF-DEFINED STRICT - EXPECT !finishings-supported IF-DEFINED STRICT - EXPECT !media-bottom-margin-supported IF-DEFINED STRICT - EXPECT !media-col-default IF-DEFINED STRICT - EXPECT !media-col-ready IF-DEFINED STRICT - EXPECT !media-col-supported IF-DEFINED STRICT - EXPECT !media-default IF-DEFINED STRICT - EXPECT !media-left-margin-supported IF-DEFINED STRICT - EXPECT !media-ready IF-DEFINED STRICT - EXPECT !media-right-margin-supported IF-DEFINED STRICT - EXPECT !media-size-supported IF-DEFINED STRICT - EXPECT !media-source-supported IF-DEFINED STRICT - EXPECT !media-supported IF-DEFINED STRICT - EXPECT !media-top-margin-supported IF-DEFINED STRICT - EXPECT !media-type-supported IF-DEFINED STRICT - EXPECT !orientation-requested-default IF-DEFINED STRICT - EXPECT !orientation-requested-supported IF-DEFINED STRICT - EXPECT !output-bin-default IF-DEFINED STRICT - EXPECT !output-bin-supported IF-DEFINED STRICT - EXPECT !overrides-supported IF-DEFINED STRICT - EXPECT !page-ranges-supported IF-DEFINED STRICT - EXPECT !print-color-mode-default IF-DEFINED STRICT - EXPECT !print-color-mode-supported IF-DEFINED STRICT - EXPECT !print-content-optimize-default IF-DEFINED STRICT - EXPECT !print-content-optimize-supported IF-DEFINED STRICT - EXPECT !print-quality-default IF-DEFINED STRICT - EXPECT !print-quality-supported IF-DEFINED STRICT - EXPECT !print-rendering-intent-default IF-DEFINED STRICT - EXPECT !print-rendering-intent-supported IF-DEFINED STRICT - EXPECT !printer-resolution-default IF-DEFINED STRICT - EXPECT !printer-resolution-supported IF-DEFINED STRICT - EXPECT !sides-default IF-DEFINED HAVE_DUPLEX IF-DEFINED STRICT - EXPECT !sides-supported IF-DEFINED HAVE_DUPLEX IF-DEFINED STRICT -} - -{ - NAME "I-10.5. Get-Printer-Attributes Operation (printer-description)" - - OPERATION Get-Printer-Attributes - - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - ATTR keyword requested-attributes 'printer-description' - - STATUS successful-ok - - # 'media-col-database' attribute should never be returned unless - # explicitly requested... - EXPECT !media-col-database - - # 'printer-description' attributes - EXPECT charset-configured - EXPECT charset-supported - EXPECT color-supported - EXPECT compression-supported - EXPECT document-format-default - EXPECT document-format-supported - EXPECT generated-natural-language-supported - EXPECT identify-actions-default - EXPECT identify-actions-supported - EXPECT ipp-features-supported - EXPECT ipp-versions-supported - EXPECT job-constraints-supported IF-DEFINED HAVE_JOB_CONSTRAINTS - EXPECT job-creation-attributes-supported - EXPECT job-ids-supported - EXPECT job-password-supported IF-DEFINED HAVE_PRINT_TO_A_RECIPIENT - EXPECT job-password-encryption-supported IF-DEFINED HAVE_PRINT_TO_A_RECIPIENT - EXPECT job-resolvers-supported IF-DEFINED HAVE_JOB_CONSTRAINTS - EXPECT multiple-document-jobs-supported - EXPECT multiple-operation-time-out - EXPECT multiple-operation-time-out-action - EXPECT natural-language-configured - EXPECT operations-supported - EXPECT pages-per-minute - EXPECT pages-per-minute-color IF-DEFINED HAVE_COLOR - EXPECT !pages-per-minute-color IF-NOT-DEFINED HAVE_COLOR - EXPECT pdl-override-supported - EXPECT preferred-attributes-supported - EXPECT printer-charge-info-uri IF-DEFINED HAVE_CHARGE_INFO - EXPECT printer-config-change-date-time - EXPECT printer-config-change-time - EXPECT printer-current-time - EXPECT printer-geo-location - EXPECT printer-get-attributes-supported - EXPECT printer-icc-profiles-supported IF-DEFINED HAVE_ICC_PROFILES - EXPECT printer-icons - EXPECT printer-info - EXPECT printer-is-accepting-jobs - EXPECT printer-location - EXPECT printer-make-and-model - EXPECT printer-more-info - EXPECT printer-name - EXPECT printer-organization - EXPECT printer-organizational-unit - EXPECT printer-state - EXPECT printer-state-change-date-time - EXPECT printer-state-change-time - EXPECT printer-state-message - EXPECT printer-state-reasons - EXPECT printer-supply IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-supply-description IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-supply-info-uri IF-DEFINED HAVE_PRINTER_SUPPLY - EXPECT printer-up-time - EXPECT printer-uri-supported - EXPECT printer-uuid - EXPECT pwg-raster-document-resolution-supported - EXPECT pwg-raster-document-sheet-back IF-DEFINED HAVE_DUPLEX - EXPECT pwg-raster-document-type-supported - EXPECT queued-job-count - EXPECT uri-authentication-supported - EXPECT uri-security-supported - EXPECT which-jobs-supported - - ## Issue #50: Relax Get-Printer-Attributes tests - # 'job-template' attributes - EXPECT !copies-default IF-DEFINED STRICT - EXPECT !copies-supported IF-DEFINED STRICT - EXPECT !finishings-default IF-DEFINED STRICT - EXPECT !finishings-supported IF-DEFINED STRICT - EXPECT !media-bottom-margin-supported IF-DEFINED STRICT - EXPECT !media-col-default IF-DEFINED STRICT - EXPECT !media-col-ready IF-DEFINED STRICT - EXPECT !media-col-supported IF-DEFINED STRICT - EXPECT !media-default IF-DEFINED STRICT - EXPECT !media-left-margin-supported IF-DEFINED STRICT - EXPECT !media-ready IF-DEFINED STRICT - EXPECT !media-right-margin-supported IF-DEFINED STRICT - EXPECT !media-size-supported IF-DEFINED STRICT - EXPECT !media-source-supported IF-DEFINED STRICT - EXPECT !media-supported IF-DEFINED STRICT - EXPECT !media-top-margin-supported IF-DEFINED STRICT - EXPECT !media-type-supported IF-DEFINED STRICT - EXPECT !orientation-requested-default IF-DEFINED STRICT - EXPECT !orientation-requested-supported IF-DEFINED STRICT - EXPECT !output-bin-default IF-DEFINED STRICT - EXPECT !output-bin-supported IF-DEFINED STRICT - EXPECT !overrides-supported IF-DEFINED STRICT - EXPECT !page-ranges-supported IF-DEFINED STRICT - EXPECT !print-color-mode-default IF-DEFINED STRICT - EXPECT !print-color-mode-supported IF-DEFINED STRICT - EXPECT !print-content-optimize-default IF-DEFINED STRICT - EXPECT !print-content-optimize-supported IF-DEFINED STRICT - EXPECT !print-quality-default IF-DEFINED STRICT - EXPECT !print-quality-supported IF-DEFINED STRICT - EXPECT !print-rendering-intent-default IF-DEFINED STRICT - EXPECT !print-rendering-intent-supported IF-DEFINED STRICT - EXPECT !printer-resolution-default IF-DEFINED STRICT - EXPECT !printer-resolution-supported IF-DEFINED STRICT - EXPECT !sides-default IF-DEFINED HAVE_DUPLEX IF-DEFINED STRICT - EXPECT !sides-supported IF-DEFINED HAVE_DUPLEX IF-DEFINED STRICT -} - -{ - NAME "I-10.6. Get-Printer-Attributes Operation (job-template)" - - OPERATION Get-Printer-Attributes - - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - ATTR keyword requested-attributes 'job-template' - - STATUS successful-ok - - # 'media-col-database' attribute should never be returned unless - # explicitly requested... - EXPECT !media-col-database - - ## Issue #50: Relax Get-Printer-Attributes tests - # 'printer-description' attributes - EXPECT !charset-configured IF-DEFINED STRICT - EXPECT !charset-supported IF-DEFINED STRICT - EXPECT !color-supported IF-DEFINED STRICT - EXPECT !compression-supported IF-DEFINED STRICT - EXPECT !document-format-default IF-DEFINED STRICT - EXPECT !document-format-supported IF-DEFINED STRICT - EXPECT !generated-natural-language-supported IF-DEFINED STRICT - EXPECT !identify-actions-default IF-DEFINED STRICT - EXPECT !identify-actions-supported IF-DEFINED STRICT - EXPECT !ipp-features-supported IF-DEFINED STRICT - EXPECT !ipp-versions-supported IF-DEFINED STRICT - EXPECT !job-constraints-supported IF-DEFINED STRICT - EXPECT !job-creation-attributes-supported IF-DEFINED STRICT - EXPECT !job-ids-supported IF-DEFINED STRICT - EXPECT !job-password-supported IF-DEFINED STRICT - EXPECT !job-password-encryption-supported IF-DEFINED STRICT - EXPECT !job-resolvers-supported IF-DEFINED STRICT - EXPECT !multiple-document-jobs-supported IF-DEFINED STRICT - EXPECT !multiple-operation-time-out IF-DEFINED STRICT - EXPECT !multiple-operation-time-out-action IF-DEFINED STRICT - EXPECT !natural-language-configured IF-DEFINED STRICT - EXPECT !operations-supported IF-DEFINED STRICT - EXPECT !pages-per-minute IF-DEFINED STRICT - EXPECT !pages-per-minute-color IF-DEFINED STRICT - EXPECT !!pages-per-minute-color IF-DEFINED STRICT - EXPECT !pdl-override-supported IF-DEFINED STRICT - EXPECT !preferred-attributes-supported IF-DEFINED STRICT - EXPECT !printer-charge-info-uri IF-DEFINED STRICT - EXPECT !printer-config-change-date-time IF-DEFINED STRICT - EXPECT !printer-config-change-time IF-DEFINED STRICT - EXPECT !printer-current-time IF-DEFINED STRICT - EXPECT !printer-geo-location IF-DEFINED STRICT - EXPECT !printer-get-attributes-supported IF-DEFINED STRICT - EXPECT !printer-icc-profiles-supported IF-DEFINED STRICT - EXPECT !printer-icons IF-DEFINED STRICT - EXPECT !printer-info IF-DEFINED STRICT - EXPECT !printer-is-accepting-jobs IF-DEFINED STRICT - EXPECT !printer-location IF-DEFINED STRICT - EXPECT !printer-make-and-model IF-DEFINED STRICT - EXPECT !printer-more-info IF-DEFINED STRICT - EXPECT !printer-name IF-DEFINED STRICT - EXPECT !printer-organization IF-DEFINED STRICT - EXPECT !printer-organizational-unit IF-DEFINED STRICT - EXPECT !printer-state IF-DEFINED STRICT - EXPECT !printer-state-change-date-time IF-DEFINED STRICT - EXPECT !printer-state-change-time IF-DEFINED STRICT - EXPECT !printer-state-message IF-DEFINED STRICT - EXPECT !printer-state-reasons IF-DEFINED STRICT - EXPECT !printer-supply IF-DEFINED STRICT - EXPECT !printer-supply-description IF-DEFINED STRICT - EXPECT !printer-supply-info-uri IF-DEFINED STRICT - EXPECT !printer-up-time IF-DEFINED STRICT - EXPECT !printer-uri-supported IF-DEFINED STRICT - EXPECT !printer-uuid IF-DEFINED STRICT - EXPECT !pwg-raster-document-resolution-supported IF-DEFINED STRICT - EXPECT !pwg-raster-document-sheet-back IF-DEFINED STRICT - EXPECT !pwg-raster-document-type-supported IF-DEFINED STRICT - EXPECT !queued-job-count IF-DEFINED STRICT - EXPECT !uri-authentication-supported IF-DEFINED STRICT - EXPECT !uri-security-supported IF-DEFINED STRICT - EXPECT !which-jobs-supported IF-DEFINED STRICT - - # 'job-template' attributes - EXPECT copies-default - EXPECT copies-supported - EXPECT finishings-default IF-DEFINED HAVE_FINISHINGS - EXPECT finishings-supported IF-DEFINED HAVE_FINISHINGS - EXPECT media-bottom-margin-supported - EXPECT media-col-default - EXPECT media-col-ready - EXPECT media-col-supported - EXPECT media-default - EXPECT media-left-margin-supported - EXPECT media-ready - EXPECT media-right-margin-supported - EXPECT media-size-supported - EXPECT media-source-supported IF-DEFINED HAVE_MEDIA_SOURCE - EXPECT media-supported - EXPECT media-top-margin-supported - EXPECT media-type-supported IF-DEFINED HAVE_MEDIA_TYPE - EXPECT orientation-requested-default - EXPECT orientation-requested-supported - EXPECT output-bin-default - EXPECT output-bin-supported - EXPECT overrides-supported IF-DEFINED HAVE_PDF - EXPECT page-ranges-supported IF-DEFINED HAVE_PDF - EXPECT print-color-mode-default - EXPECT print-color-mode-supported - EXPECT print-content-optimize-default IF-DEFINED HAVE_PRINT_CONTENT_OPTIMIZE - EXPECT print-content-optimize-supported IF-DEFINED HAVE_PRINT_CONTENT_OPTIMIZE - EXPECT print-quality-default - EXPECT print-quality-supported - EXPECT print-rendering-intent-default IF-DEFINED HAVE_ICC_PROFILES - EXPECT print-rendering-intent-supported IF-DEFINED HAVE_ICC_PROFILES - EXPECT printer-resolution-default - EXPECT printer-resolution-supported - EXPECT sides-default IF-DEFINED HAVE_DUPLEX - EXPECT sides-supported IF-DEFINED HAVE_DUPLEX -} - - -# Test Get-Printer-Attributes operation with requested-attributes -# -# Required by: RFC 8011 section 4.2.5, PWG 5100.11 (JPS2) -{ - NAME "I-10.7 Get-Printer-Attributes Operation (media-col-database, printer-uri-supported)" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword requested-attributes media-col-database,printer-uri-supported - - STATUS successful-ok - - EXPECT media-col-database OF-TYPE collection IN-GROUP printer-attributes-tag - EXPECT-ALL media-col-database/media-size OF-TYPE collection COUNT 1 - EXPECT-ALL media-col-database/media-size/x-dimension OF-TYPE integer|rangeOfInteger COUNT 1 WITH-VALUE >0 - EXPECT-ALL media-col-database/media-size/y-dimension OF-TYPE integer|rangeOfInteger COUNT 1 WITH-VALUE >0 - EXPECT-ALL ?media-col-database/media-source OF-TYPE keyword|name COUNT 1 IF-DEFINED HAVE_MEDIA_SOURCE - EXPECT-ALL ?media-col-database/media-source-properties OF-TYPE collection COUNT 1 - EXPECT-ALL ?media-col-database/media-type OF-TYPE keyword|name COUNT 1 IF-DEFINED HAVE_MEDIA_TYPE - - EXPECT printer-uri-supported OF-TYPE uri IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$IPP_URI_SCHEME" - - ## Issue #50: Relax Get-Printer-Attributes tests - EXPECT !printer-name IF-DEFINED STRICT - EXPECT !printer-state IF-DEFINED STRICT - EXPECT !printer-state-message IF-DEFINED STRICT - EXPECT !printer-state-reasons IF-DEFINED STRICT -} - - -# Test Validate-Job operation -# -# Required by: RFC 8011 section 4.2.3 -{ - NAME "I-11. Validate-Job Operation" - OPERATION Validate-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "I-11 Validate Job Test" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name "Validate Document Test" - ATTR keyword compression none - ATTR mimeMediaType document-format "image/pwg-raster" - - GROUP job-attributes-tag - ATTR keyword media "$DEFAULT_MEDIA" - ATTR keyword print-color-mode "$DEFAULT_PRINT_COLOR_MODE" - ATTR enum print-quality $DEFAULT_PRINT_QUALITY - ATTR resolution printer-resolution $DEFAULT_PRINTER_RESOLUTION - ATTR keyword sides "one-sided" - - STATUS successful-ok -} - - -# Test Print-Job operation -# -# Required by: RFC 8011 section 4.2.1 -{ - NAME "I-12. Print-Job Operation (Print-Job Test onepage)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "I-12 Print-Job Test" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name "onepage" - ATTR keyword compression none - ATTR mimeMediaType document-format "image/pwg-raster" - - GROUP job-attributes-tag - ATTR keyword media "$DEFAULT_MEDIA" - ATTR keyword print-color-mode "$DEFAULT_PRINT_COLOR_MODE" - ATTR enum print-quality $DEFAULT_PRINT_QUALITY - ATTR resolution printer-resolution $DEFAULT_PRINTER_RESOLUTION - ATTR keyword sides "one-sided" - - GENERATE-FILE { - COLORSPACE auto - RESOLUTION min - } - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 - EXPECT job-id DEFINE-VALUE PRINT_JOB_ID - - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state WITH-VALUE 7,8,9 DEFINE-MATCH PRINT_JOB_COMPLETED - - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag - - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag -} - - -# Test Get-Jobs operation -# -# Required by: RFC 8011 section 4.2.6 -{ - SKIP-IF-DEFINED PRINT_JOB_COMPLETED - - NAME "I-13. Get-Jobs Operation (default)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - - STATUS successful-ok - - EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT !job-name - EXPECT !job-state -} - - -# Test Get-Jobs operation -# -# Required by: RFC 8011 section 4.2.6 -{ - SKIP-IF-DEFINED PRINT_JOB_COMPLETED - - NAME "I-13.1 Get-Jobs Operation (requested-attributes)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword requested-attributes all - - STATUS successful-ok - - # PWG 5100.14 - Table 9 - Job Description attributes - EXPECT date-time-at-completed OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-creation OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-processing OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$user" - EXPECT job-printer-up-time OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$uri" - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<7 - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-uuid OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$UUID_URI" - EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - - # PWG 5100.15 - Table 8 - Job Template attributes - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?feed-orientation OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-account-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-accounting-user-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?media-col OF-TYPE collection IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-bin OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?page-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag - EXPECT ?print-color-mode OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 -} - - -# Test Get-Jobs operation -# -# Required by: RFC 8011 section 4.2.6 -{ - SKIP-IF-DEFINED PRINT_JOB_COMPLETED - - NAME "I-13.2 Get-Jobs Operation (which-jobs=not-completed)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword which-jobs not-completed - - STATUS successful-ok - - EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT !job-name - EXPECT !job-state -} - - -# Wait for job to complete... -{ - SKIP-IF-NOT-DEFINED PRINT_JOB_ID - - NAME "I-14. Get-Job-Attributes Operation (until job complete)" - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $PRINT_JOB_ID - ATTR name requesting-user-name $user - - STATUS successful-ok - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >6 REPEAT-NO-MATCH REPEAT-LIMIT 30 - DISPLAY job-state - - # PWG 5100.14 - Table 9 - Job Description attributes - EXPECT date-time-at-completed OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-creation OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-processing OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE $PRINT_JOB_ID - EXPECT job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "I-12 Print-Job Test" - EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-printer-up-time OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$uri" - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-uuid OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$UUID_URI" - EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - - # PWG 5100.15 - Table 8 - Job Template attributes - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "1" - EXPECT ?feed-orientation OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-account-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-accounting-user-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT media OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_MEDIA" - EXPECT ?media-col OF-TYPE collection IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-bin OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_OUTPUT_BIN" - EXPECT !page-ranges - EXPECT print-color-mode OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_PRINT_COLOR_MODE" - EXPECT print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE $DEFAULT_PRINT_QUALITY - EXPECT printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_PRINTER_RESOLUTION" - EXPECT sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "one-sided" -} - - -# Test Get-Jobs operation -# -# Required by: RFC 8011 section 4.2.6 -{ - NAME "I-15. Get-Jobs Operation (which-jobs=completed)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword which-jobs completed - - STATUS successful-ok - - # TODO: Use EXPECT-ALL/ANY syntax to check for job that was just completed - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT !job-name - EXPECT !job-state -} - - -# Test Get-Jobs operation -# -# Required by: RFC 8011 section 4.2.6 -{ - NAME "I-15.1 Get-Jobs Operation (which-jobs, requested-attributes)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword requested-attributes all - ATTR keyword which-jobs completed - - STATUS successful-ok - - # PWG 5100.14 - Table 9 - Job Description attributes - EXPECT date-time-at-completed OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-creation OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-processing OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-printer-up-time OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$uri" - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >6,<10 - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-uuid OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$UUID_URI" - EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - - # PWG 5100.15 - Table 8 - Job Template attributes - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?feed-orientation OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-account-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-accounting-user-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?media-col OF-TYPE collection IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-bin OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?page-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag - EXPECT ?print-color-mode OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 -} - - -# Test Cancel-Job operation -# -# Required by: RFC 8011 section 4.3.3 -{ - NAME "I-16. Cancel-Job Operation (completed job)" - OPERATION Cancel-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $PRINT_JOB_ID - ATTR name requesting-user-name $user - - STATUS client-error-not-possible -} - - -# Test Print-Job operation -# -# Required by: RFC 8011 section 4.2.1 -{ - NAME "I-16.1 Cancel-Job Operation (Cancel-Job Test onepage)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "I-16.1 Cancel-Job Test" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name "onepage" - ATTR keyword compression none - ATTR mimeMediaType document-format "image/pwg-raster" - - GROUP job-attributes-tag - ATTR keyword media "$DEFAULT_MEDIA" - ATTR keyword print-color-mode "$DEFAULT_PRINT_COLOR_MODE" - ATTR enum print-quality $DEFAULT_PRINT_QUALITY - ATTR resolution printer-resolution $DEFAULT_PRINTER_RESOLUTION - ATTR keyword sides "one-sided" - - GENERATE-FILE { - COLORSPACE auto - RESOLUTION min - } - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 - EXPECT job-id DEFINE-VALUE CANCEL_JOB_ID - - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 - - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag - - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag -} - - -# Test Cancel-Job operation -# -# Required by: RFC 8011 section 4.3.3 -{ - NAME "I-16.2. Cancel-Job Operation (pending/processing job)" - OPERATION Cancel-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $CANCEL_JOB_ID - ATTR name requesting-user-name $user - - STATUS successful-ok - STATUS client-error-not-possible -} - - -# Test Get-Job-Attributes operation -# -# Required by: RFC 8011 section 4.3.4 -{ - NAME "I-16.3 Cancel-Job Operations (Get-Job-Attributes)" - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $CANCEL_JOB_ID - ATTR name requesting-user-name $user - - STATUS successful-ok - - # PWG 5100.14 - Table 9 - Job Description attributes - EXPECT date-time-at-completed OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-creation OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-processing OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE $CANCEL_JOB_ID - EXPECT job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "I-16.1 Cancel-Job Test" - EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-printer-up-time OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$uri" - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >6,<10 - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-uuid OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$UUID_URI" - EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - - # PWG 5100.15 - Table 8 - Job Template attributes - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "1" - EXPECT ?feed-orientation OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-account-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-accounting-user-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT media OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_MEDIA" - EXPECT ?media-col OF-TYPE collection IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-bin OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_OUTPUT_BIN" - EXPECT !page-ranges - EXPECT print-color-mode OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_PRINT_COLOR_MODE" - EXPECT print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE $DEFAULT_PRINT_QUALITY - EXPECT printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_PRINTER_RESOLUTION" - EXPECT sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "one-sided" -} - - -# Test Cancel-My-Jobs operation -# -# Required by: IPP Everywhere -{ - NAME "I-17. Cancel-My-Jobs Operation (Cancel-My-Jobs Test onepage)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "I-17 Cancel-My-Jobs Test" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name "onepage" - ATTR keyword compression none - ATTR mimeMediaType document-format "image/pwg-raster" - - GROUP job-attributes-tag - ATTR keyword media "$DEFAULT_MEDIA" - ATTR keyword print-color-mode "$DEFAULT_PRINT_COLOR_MODE" - ATTR enum print-quality $DEFAULT_PRINT_QUALITY - ATTR resolution printer-resolution $DEFAULT_PRINTER_RESOLUTION - ATTR keyword sides "one-sided" - - GENERATE-FILE { - COLORSPACE auto - RESOLUTION min - } - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 - EXPECT job-id DEFINE-VALUE CANCEL_MY_JOBS_ID - - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 - - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag - - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag -} - -{ - NAME "I-17.1 Cancel-My-Jobs Operation (Cancel-My-Jobs)" - OPERATION Cancel-My-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - - STATUS successful-ok - STATUS client-error-not-possible -} - -{ - NAME "I-17.2 Cancel-My-Jobs Operations (Get-Job-Attributes)" - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $CANCEL_MY_JOBS_ID - ATTR name requesting-user-name $user - - STATUS successful-ok - - # PWG 5100.14 - Table 9 - Job Description attributes - EXPECT date-time-at-completed OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-creation OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-processing OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE $CANCEL_MY_JOBS_ID - EXPECT job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "I-17 Cancel-My-Jobs Test" - EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-printer-up-time OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$uri" - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >6,<10 - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-uuid OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$UUID_URI" - EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - - # PWG 5100.15 - Table 8 - Job Template attributes - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "1" - EXPECT ?feed-orientation OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-account-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-accounting-user-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT media OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_MEDIA" - EXPECT ?media-col OF-TYPE collection IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-bin OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_OUTPUT_BIN" - EXPECT !page-ranges - EXPECT print-color-mode OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_PRINT_COLOR_MODE" - EXPECT print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE $DEFAULT_PRINT_QUALITY - EXPECT printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_PRINTER_RESOLUTION" - EXPECT sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "one-sided" -} - - -# Test Create-Job and Send-Document operations -# -# Defined by: RFC 8011 section 4.2.4 and 4.3.1 -{ - NAME "I-18. Create-Job + Send-Document Operations (Create-Job)" - OPERATION Create-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "I-18 Create-Job + Send-Document Test" - ATTR boolean ipp-attribute-fidelity false - - GROUP job-attributes-tag - ATTR keyword media "$DEFAULT_MEDIA" - ATTR keyword print-color-mode "$DEFAULT_PRINT_COLOR_MODE" - ATTR enum print-quality $DEFAULT_PRINT_QUALITY - ATTR resolution printer-resolution $DEFAULT_PRINTER_RESOLUTION - ATTR keyword sides "one-sided" - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 - EXPECT job-id DEFINE-VALUE CREATE_SEND_ID - - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6 - - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag - - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag -} - -{ - SKIP-IF-NOT-DEFINED CREATE_SEND_ID - - NAME "I-18.1 Create-Job + Send-Document Operations (Send-Document onepage)" - OPERATION Send-Document - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $CREATE_SEND_ID - ATTR name requesting-user-name $user - ATTR boolean last-document true - ATTR name document-name "onepage" - ATTR keyword compression none - ATTR mimeMediaType document-format "image/pwg-raster" - - GENERATE-FILE { - COLORSPACE auto - RESOLUTION min - } - - STATUS successful-ok - STATUS server-error-job-canceled -} - -# Wait for job to complete... -{ - SKIP-IF-NOT-DEFINED CREATE_SEND_ID - - NAME "I-18.2 Create-Job + Send-Document Operations (Get-Job-Attributes until job complete)" - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $CREATE_SEND_ID - ATTR name requesting-user-name $user - - STATUS successful-ok - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state WITH-VALUE >6 REPEAT-NO-MATCH REPEAT-LIMIT 30 - DISPLAY job-state - - # PWG 5100.14 - Table 9 - Job Description attributes - EXPECT date-time-at-completed OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-creation OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT date-time-at-processing OF-TYPE dateTime|no-value|unknown IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE $CREATE_SEND_ID - EXPECT job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "I-18 Create-Job + Send-Document Test" - EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-printer-up-time OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$uri" - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-uuid OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$UUID_URI" - EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - - # PWG 5100.15 - Table 8 - Job Template attributes - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "1" - EXPECT ?feed-orientation OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-account-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-accounting-user-id OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT media OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_MEDIA" - EXPECT ?media-col OF-TYPE collection IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-bin OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_OUTPUT_BIN" - EXPECT !page-ranges - EXPECT print-color-mode OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_PRINT_COLOR_MODE" - EXPECT print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE $DEFAULT_PRINT_QUALITY - EXPECT printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$DEFAULT_PRINTER_RESOLUTION" - EXPECT sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "one-sided" -} - - -# Test Close-Job operation -# -# Create an empty job using Create-Job and Close-Job operations, and then -# cancel the job to clean it up. -{ - NAME "I-19. Close-Job Test (Create-Job Operation)" - - OPERATION Create-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "I-19 Close-Job Test Job" - ATTR boolean ipp-attribute-fidelity false - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 - EXPECT job-id DEFINE-VALUE CLOSE_JOB_ID - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6 - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag -} - -{ - SKIP-IF-NOT-DEFINED CLOSE_JOB_ID - - NAME "I-19.1 Close-Job Test (Close-Job Operation)" - OPERATION Close-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $CLOSE_JOB_ID - ATTR name requesting-user-name $user - - STATUS successful-ok - STATUS server-error-job-canceled -} - -{ - SKIP-IF-NOT-DEFINED CLOSE_JOB_ID - - NAME "I-19.2 Close-Job Test (Get-Job-Attributes Operation)" - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $CLOSE_JOB_ID - ATTR name requesting-user-name $user - - STATUS successful-ok - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "I-19 Close-Job Test Job" -} - -{ - SKIP-IF-NOT-DEFINED CLOSE_JOB_ID - - NAME "I-19.3. Close-Job Test (Cancel-Job Operation)" - OPERATION Cancel-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $CLOSE_JOB_ID - ATTR name requesting-user-name $user - - STATUS successful-ok - STATUS client-error-not-possible -} - - -# Test Print-Job operation for media-needed -# -# Required by: RFC 8011 section 4.2.1 -{ - SKIP-IF-DEFINED IPP_EVERYWHERE_SERVER - - PAUSE "======== Remove media from printer until instructed. ========" - - NAME "I-20. media-needed (media-needed Test onepage)" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "I-20 media-needed Test" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name "onepage" - ATTR keyword compression none - ATTR mimeMediaType document-format "image/pwg-raster" - - GROUP job-attributes-tag - ATTR keyword media "$DEFAULT_MEDIA" - ATTR keyword print-color-mode "$DEFAULT_PRINT_COLOR_MODE" - ATTR enum print-quality $DEFAULT_PRINT_QUALITY - ATTR resolution printer-resolution $DEFAULT_PRINTER_RESOLUTION - ATTR keyword sides "one-sided" - - GENERATE-FILE { - COLORSPACE auto - RESOLUTION min - } - - MONITOR-PRINTER-STATE $uri { - EXPECT printer-state-reasons WITH-VALUE "/^media-needed/" DEFINE-MATCH HAVE_MEDIA_NEEDED DISPLAY-MATCH "======== OK to insert media. ========" - } - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 - EXPECT job-id DEFINE-VALUE MEDIA_NEEDED_ID - - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state WITH-VALUE 7,8,9 DEFINE-MATCH PRINT_JOB_COMPLETED - - EXPECT job-state-message OF-TYPE text IN-GROUP job-attributes-tag - - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag -} - -# Test 'media-needed' reason -{ - SKIP-IF-DEFINED IPP_EVERYWHERE_SERVER - SKIP-IF-DEFINED HAVE_MEDIA_NEEDED - - DELAY 5 - - NAME "I-20.1 media-needed (Get-Printer-Attributes)" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword requested-attributes "printer-state-reasons" - - STATUS successful-ok - - EXPECT printer-state-reasons OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^media-needed/" REPEAT-NO-MATCH REPEAT-LIMIT 24 DISPLAY-MATCH "======== OK to insert media. ========" - - ## Issue #50: Relax Get-Printer-Attributes tests - EXPECT !printer-state IF-DEFINED STRICT -} diff --git a/vcnet/config.h b/vcnet/config.h index f0200e8..c67f241 100644 --- a/vcnet/config.h +++ b/vcnet/config.h @@ -1,8 +1,7 @@ -/* config.h. Generated from config.h.in by configure. */ // -// Configuration file for the IPP Everywhere Printer Self-Certification tools. +// Visual Studio configuration file for the IPP Everywhere Printer Self-Certification tools. // -// Copyright © 2015-2022 by the IEEE-ISTO Printer Working Group. +// Copyright © 2015-2024 by the IEEE-ISTO Printer Working Group. // // Licensed under Apache License v2.0. See the file "LICENSE" for more // information. @@ -17,10 +16,4 @@ #define IPPEVESELFCERT_SWVERSION "2.0b1" -// DNS-SD support -#define HAVE_DNSSD 1 -#define HAVE_MDNSRESPONDER 1 -/* #undef HAVE_AVAHI */ - - #endif // !IPPEVESELFCERT_CONFIG_H