neilzhu 85086f3258 first commit 1 month ago
..
demo 85086f3258 first commit 1 month ago
file1 85086f3258 first commit 1 month ago
file10 85086f3258 first commit 1 month ago
file100 85086f3258 first commit 1 month ago
file11 85086f3258 first commit 1 month ago
file12 85086f3258 first commit 1 month ago
file13 85086f3258 first commit 1 month ago
file14 85086f3258 first commit 1 month ago
file15 85086f3258 first commit 1 month ago
file16 85086f3258 first commit 1 month ago
file17 85086f3258 first commit 1 month ago
file18 85086f3258 first commit 1 month ago
file19 85086f3258 first commit 1 month ago
file2 85086f3258 first commit 1 month ago
file20 85086f3258 first commit 1 month ago
file21 85086f3258 first commit 1 month ago
file22 85086f3258 first commit 1 month ago
file23 85086f3258 first commit 1 month ago
file24 85086f3258 first commit 1 month ago
file25 85086f3258 first commit 1 month ago
file26 85086f3258 first commit 1 month ago
file27 85086f3258 first commit 1 month ago
file28 85086f3258 first commit 1 month ago
file29 85086f3258 first commit 1 month ago
file3 85086f3258 first commit 1 month ago
file30 85086f3258 first commit 1 month ago
file31 85086f3258 first commit 1 month ago
file32 85086f3258 first commit 1 month ago
file33 85086f3258 first commit 1 month ago
file34 85086f3258 first commit 1 month ago
file35 85086f3258 first commit 1 month ago
file36 85086f3258 first commit 1 month ago
file37 85086f3258 first commit 1 month ago
file38 85086f3258 first commit 1 month ago
file39 85086f3258 first commit 1 month ago
file4 85086f3258 first commit 1 month ago
file40 85086f3258 first commit 1 month ago
file41 85086f3258 first commit 1 month ago
file42 85086f3258 first commit 1 month ago
file43 85086f3258 first commit 1 month ago
file44 85086f3258 first commit 1 month ago
file45 85086f3258 first commit 1 month ago
file46 85086f3258 first commit 1 month ago
file47 85086f3258 first commit 1 month ago
file48 85086f3258 first commit 1 month ago
file49 85086f3258 first commit 1 month ago
file5 85086f3258 first commit 1 month ago
file50 85086f3258 first commit 1 month ago
file51 85086f3258 first commit 1 month ago
file52 85086f3258 first commit 1 month ago
file53 85086f3258 first commit 1 month ago
file54 85086f3258 first commit 1 month ago
file55 85086f3258 first commit 1 month ago
file56 85086f3258 first commit 1 month ago
file57 85086f3258 first commit 1 month ago
file58 85086f3258 first commit 1 month ago
file59 85086f3258 first commit 1 month ago
file6 85086f3258 first commit 1 month ago
file60 85086f3258 first commit 1 month ago
file61 85086f3258 first commit 1 month ago
file62 85086f3258 first commit 1 month ago
file63 85086f3258 first commit 1 month ago
file64 85086f3258 first commit 1 month ago
file65 85086f3258 first commit 1 month ago
file66 85086f3258 first commit 1 month ago
file67 85086f3258 first commit 1 month ago
file68 85086f3258 first commit 1 month ago
file69 85086f3258 first commit 1 month ago
file7 85086f3258 first commit 1 month ago
file70 85086f3258 first commit 1 month ago
file71 85086f3258 first commit 1 month ago
file72 85086f3258 first commit 1 month ago
file73 85086f3258 first commit 1 month ago
file74 85086f3258 first commit 1 month ago
file75 85086f3258 first commit 1 month ago
file76 85086f3258 first commit 1 month ago
file77 85086f3258 first commit 1 month ago
file78 85086f3258 first commit 1 month ago
file79 85086f3258 first commit 1 month ago
file8 85086f3258 first commit 1 month ago
file80 85086f3258 first commit 1 month ago
file81 85086f3258 first commit 1 month ago
file82 85086f3258 first commit 1 month ago
file83 85086f3258 first commit 1 month ago
file84 85086f3258 first commit 1 month ago
file85 85086f3258 first commit 1 month ago
file86 85086f3258 first commit 1 month ago
file87 85086f3258 first commit 1 month ago
file88 85086f3258 first commit 1 month ago
file89 85086f3258 first commit 1 month ago
file9 85086f3258 first commit 1 month ago
file90 85086f3258 first commit 1 month ago
file91 85086f3258 first commit 1 month ago
file92 85086f3258 first commit 1 month ago
file93 85086f3258 first commit 1 month ago
file94 85086f3258 first commit 1 month ago
file95 85086f3258 first commit 1 month ago
file96 85086f3258 first commit 1 month ago
file97 85086f3258 first commit 1 month ago
file98 85086f3258 first commit 1 month ago
file99 85086f3258 first commit 1 month ago
src 85086f3258 first commit 1 month ago
Cargo.lock 85086f3258 first commit 1 month ago
Cargo.toml 85086f3258 first commit 1 month ago
README.md 85086f3258 first commit 1 month ago
run.sh 85086f3258 first commit 1 month ago
test.sh 85086f3258 first commit 1 month ago

README.md

HQL Tests Runner

A test runner for processing helix files with automatic GitHub issue creation for errors.

Features

  • Process individual helix files or all files (1-100) in parallel
  • Automatic GitHub issue creation for compilation and cargo check errors
  • Duplicate issue prevention using error hashing
  • Clean temporary directory management

Usage

Basic Usage

# Process all files in parallel
cargo run --bin test

# Process a specific file
cargo run --bin test -- 42

GitHub Integration

To enable automatic GitHub issue creation, set the following environment variables:

export GITHUB_TOKEN="your_personal_access_token"
export GITHUB_OWNER="HelixDB"           # Optional, defaults to "HelixDB"
export GITHUB_REPO="helix-db"           # Optional, defaults to "helix-db"

Creating a GitHub Personal Access Token

  1. Go to GitHub Settings → Developer settings → Personal access tokens
  2. Generate a new token with the following permissions:
    • repo (Full control of private repositories)
    • issues (Read and write access to issues)
  3. Copy the token and set it as the GITHUB_TOKEN environment variable

How Issue Creation Works

When an error occurs during processing:

  1. Error Hashing: A unique hash is generated from the error type and message
  2. Duplicate Check: The system searches for existing issues with the same error hash
  3. Issue Creation: If no duplicate exists, a new issue is created with:
    • Descriptive title including error type and file number
    • Detailed error information in the body
    • Automatic labels: bug, automated, hql-tests
    • Unique error hash for duplicate prevention

Error Types Handled

  • Helix Compilation Errors: Issues created when helix compile fails
  • Cargo Check Errors: Issues created when cargo check fails

Example Issue

Title: Auto-generated: Helix Compilation Error in file42

Body:
## Automatic Error Report

**Error Type:** Helix Compilation
**File:** file42
**Error Hash:** ERROR_HASH:abc123def456

### Error Details

[Error output details]


---
*This issue was automatically generated by the hql-tests runner.*

Requirements

  • Rust 1.70+
  • helix CLI tool installed
  • GitHub personal access token (for issue creation)
  • Internet connection (for GitHub API calls)

Dependencies

  • tokio - Async runtime
  • clap - Command line argument parsing
  • anyhow - Error handling
  • octocrab - GitHub API client
  • sha2 - Error hashing
  • base64 - Hash encoding