Skip to content

Gsoc 2k19 | OpenPrinting | The Linux Foundation | Ipptool test suite updates for IPP errata updates

Sharad Shukla edited this page Aug 24, 2019 · 2 revisions

Acknowledgements

I would like to express my deepest appreciation to all those who provided me the possibility to take part and complete the project. A special gratitude I give to my mentors, whose contribution to stimulating suggestions and encouragement, helped me to coordinate my project.

Furthermore, I would also like to acknowledge with much appreciation the crucial role of Michael Sweet who has been very helpful by sharing his immense knowledge in the field and guiding me throughout the project.

Last but not least I would like to thank my family, seniors/friends who have motivated me to work hard in the project.


Project Details

Student: Sharad Shukla

Organization: The Linux Foundation

Mentors:

  • Smith Kennedy
  • Ira McDonald
  • Danny Brennan

Project Abstract

Introduction

ipptool is a command-line tool for issuing IPP requests and receiving printer's/server's responses. ipptool is maintained as free software in the ippsample collection from the IEEE-ISTO Printer Working Group (PWG). ipptool is used for development and debugging of IPP-related software and for PWG self-certification for IPP Everywhere printers for driverless printing.

Student's Task

The student's task is to develop additional ipptool test scripts for IPP errata including IPP Document Object v1.1, IPP Job Extensions v1.1, and IPP 3D Printing Extensions v1.1.


Work Done In Project

As planned at the beginning of the project I’ve worked on writing various ipptool scripts that include tests for various ipp extensions, services, etc. The objective has been to cover as many operations and attributes required by the IPP Everywhere standard.

There were a total of 3 sub-projects that were completed wherein each sub-project was an ipptool script containing various tests. The detailed description about each of the sub-projects completed, how I went about completing the sub-projects and the knowledge required for the same is explained in the rest of the document.

The 3 sub-projects were based on updating the test files for the following topic:

  1. pwg5100.3 | IPP Production Printing Extensions v2.0
  2. pwg5100.5 | IPP Document Object v1.1 Tests
  3. pwg5100.7 | IPP Job Extensions v2.0 Tests

Writing Ipptool Scripts

I proceeded with the different sub-projects which involved writing the ipptool scripts. For each sub-project, there was a document describing the various attributes and operations that were to be tested.

Details about each sub-projects and a link to the documentations used have been given below.

Updating pwg5100.3 | IPP Production Printing Extensions v2.0

A test file pwg5100.3.test already existed, my task was to update the file with the latest documentation. The following additions and changes were made:

  1. Added test for all the new Printer Description Attributes
  2. Added test for Job Template Attributes
  3. Added EXPECT !name for Obsolete Attributes

The Documentation for IPP Production Printing Extensions v2.0

Updating pwg5100.5 | IPP Document Object v1.1 Tests

A test file pwg5100.5.test already existed, my task was to update the file with the latest documentation. The following additions and changes were made:

  1. Added test for all the new Operations
  2. Added test for all the new Document Description Attributes
  3. Added test for all the new Document Status Attributes
  4. Added test for all the new Printer Description Attributes
  5. Added test for all the new Operations Attributes
  6. Added additional semantics for existing Operations

The Documentation for IPP Document Object v1.1 Tests

pwg5100.7 | IPP Job Extensions v2.0 Tests

A test file pwg5100.7.test already existed, my task was to update the file with the latest documentation. The following additions and changes were made:

  1. Added test for all the new Operations
  2. Added test for all the new Operation Attributes
  3. Added test for all the new Document and Job Status Attributes
  4. Added test for all the new Document and Job Template Attributes
  5. Added test for all the new Job Templates Attributes
  6. Added test for all the new Printer Description Attributes
  7. Added additional semantics for the existing operations
  8. Added EXPECT !name for the Obsolete Attributes

The Documentation for pwg5100.7 | IPP Job Extensions v2.0 Tests


Code-Link

Link to pull request containing entire work done as part of GSoC 2019 Link to the pull request

Conclusion

The above-mentioned tasks had been completed in the given time frame. The project was a great learning experience and was a great way to contribute to the open-source community. I feel I have realized all my expectations that I had from the project when I started and thanks to all those who have helped me in the same.

You can’t perform that action at this time.