Skip to content

Update usability and repo clarity#278

Open
petrs wants to merge 22 commits into
masterfrom
devel
Open

Update usability and repo clarity#278
petrs wants to merge 22 commits into
masterfrom
devel

Conversation

@petrs

@petrs petrs commented Feb 25, 2026

Copy link
Copy Markdown
Member

This pull request introduces several improvements to the AlgTest JavaCard testing tools, focusing on enhanced usability, error handling, and support for new smartcard profiles. The most significant changes are:

  • more detailed help system for users
  • improved logging with a new verbosity option
  • better error reporting and recovery during performance tests
  • cleanup of repository for improved clarity

More detailed description is provided below.


Usability and Documentation Improvements:

  • Added a more detailed help system to AlgTestJClient, including usage examples, common troubleshooting tips, and bug reporting instructions. This is shown when the -help flag is used. [1] [2]
  • Updated the version history and changelog to reflect the new help features.

Logging and Output Enhancements:

  • Introduced a -verbose command-line flag to control console output detail; detailed per-algorithm logs are now shown on the console only when verbose mode is enabled, but always written to the log file. [1] [2] [3] [4]
  • Improved end-of-test messaging, clarifying where results are stored and encouraging users to submit results.

Error Handling and Recovery:

  • Enhanced error handling in performance testing: detects card removal or communication loss, provides clearer recovery instructions, and prompts the user to retry or skip problematic algorithms. [1] [2]

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to improve JCAlgTest usability and repository clarity by expanding user-facing documentation/help, introducing a console verbosity flag, hardening performance-test recovery behavior, and updating project/repo housekeeping files.

Changes:

  • Expanded README/help guidance (examples, troubleshooting, contribution instructions) and added several new reference docs under docs/.
  • Added a -verbose CLI flag and extended logging/error-handling paths for performance testing.
  • Updated NetBeans/Ant project metadata and repo ignore rules as part of cleanup.

Reviewed changes

Copilot reviewed 17 out of 20 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
docs/smartcard_shops.txt Adds a short list of smartcard vendor links.
docs/card_identification.txt Adds reference links for identifying cards (NXP IDENTIFY, tooling sources).
docs/RID_list.txt Adds a large RID-to-applicant mapping list (data/reference).
docs/DESFireSupportReadme.md Adds extensive DESFire/Chameleon Mini documentation and usage examples.
coverity_model Removes a previously-empty Coverity model stub.
README.md Major usability/documentation expansion (modes, prerequisites, FAQ, contribution flow).
AlgTest_Process/run.bat Changes output paths for generated web artifacts.
AlgTest_Process/nbproject/project.properties Updates build classpath references for AlgTestProcess.
AlgTest_Process/cplc.py Extends IC type mapping and removes duplicated logic.
AlgTest_JClient/src/algtestjclient/PerformanceTesting.java Improves exception messaging and adds reconnect/retry guidance during perf tests.
AlgTest_JClient/src/algtestjclient/DirtyLogger.java Adds “detail” logging methods and a verbose flag on the logger.
AlgTest_JClient/src/algtestjclient/Args.java Introduces -verbose CLI flag.
AlgTest_JClient/src/algtestjclient/AlgTestJClient.java Adds richer --help output and a top-level error banner; wires verbose into logger construction.
AlgTest_JClient/nbproject/project.xml Adds a NetBeans build extension referencing build-native.xml.
AlgTest_JClient/nbproject/project.properties Updates jcardsim jar reference and enables native bundling (and tweaks classpath).
AlgTest_JClient/nbproject/genfiles.properties Updates generated CRCs for NetBeans build files.
AlgTest_JClient/nbproject/build-impl.xml Imports build-native.xml into the generated Ant build.
.gitignore Adds additional ignored paths (e.g., heap/, client logs, store output).
Comments suppressed due to low confidence (1)

AlgTest_JClient/src/algtestjclient/DirtyLogger.java:67

  • m_verbose is set via the new constructor, but the regular print/println methods ignore it, and printlnDetail/printDetail aren’t used anywhere else in the codebase. As a result, the -verbose flag currently has no effect on console verbosity. Either route the noisy per-algorithm output through the *Detail methods, or have print/println support log levels so the flag actually changes what is printed to stdout.
    boolean             m_verbose = false;

    public DirtyLogger(FileOutputStream logFile, boolean bOutputSystemOut) {
        m_logFile = logFile;
        m_bOutputSystemOut = bOutputSystemOut;
    }

    public DirtyLogger(FileOutputStream logFile, boolean bOutputSystemOut, boolean verbose) {
        m_logFile = logFile;
        m_bOutputSystemOut = bOutputSystemOut;
        m_verbose = verbose;
    }

    public void println() {
        String logLine = "\n";
        print(logLine);
    }
    public void println(String logLine)  {
        logLine += "\n";
        print(logLine);
    }
    public void print(String logLine) {
        if (m_bOutputSystemOut) {
            System.out.print(logLine);
        }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread AlgTest_JClient/nbproject/project.xml Outdated
Comment thread AlgTest_JClient/nbproject/project.properties Outdated
Comment thread AlgTest_Process/nbproject/project.properties Outdated
Comment thread AlgTest_Process/run.bat Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread docs/DESFireSupportReadme.md Outdated
Comment thread docs/RID_list.txt
Comment thread AlgTest_JClient/src/algtestjclient/AlgTestJClient.java Outdated
Comment thread AlgTest_JClient/nbproject/build-impl.xml Outdated
@MaryBak

MaryBak commented Mar 12, 2026

Copy link
Copy Markdown

Overall, the introduced in the PR changes are nicely addressing the found usability issues. Upon addressing those Copilot's suggestions, could be merged

@xhanulik xhanulik left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but some of the changes proposed by Copilot look reasonable - @petrs do you wanna to keep going with this or should I take over and fix it?

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 27 changed files in this pull request and generated 11 comments.

Comment thread AlgTest_JClient/src/algtestjclient/AlgTestJClient.java Outdated
Comment thread AlgTest_JClient/src/algtestjclient/AlgTestJClient.java Outdated
Comment thread AlgTest_JClient/src/algtestjclient/AlgTestJClient.java
Comment thread AlgTest_JClient/build.xml
Comment thread AlgTest_Process/build.xml
Comment thread docs/DESFireSupportReadme.md
Comment thread docs/RID_list.txt
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
@xhanulik xhanulik changed the title WIP: Update usability and repo clarity Update usability and repo clarity Jul 1, 2026
@xhanulik

xhanulik commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

@petrs could you please test the build without the netbeans project files?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants