From 2982c4ed293ba066b558f43a4ef450cefdb353bb Mon Sep 17 00:00:00 2001 From: Amaan Qureshi Date: Sun, 15 Dec 2024 16:59:56 -0500 Subject: [PATCH] ci: update workflows --- .github/workflows/ci.yml | 242 +++++++++++++++++++++++++++++++--- .github/workflows/lint.yml | 19 ++- .github/workflows/publish.yml | 35 +++++ .github/workflows/release.yml | 82 ------------ script/known_failures.txt | 194 --------------------------- script/parse-examples | 46 ------- 6 files changed, 269 insertions(+), 349 deletions(-) create mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/release.yml delete mode 100644 script/known_failures.txt delete mode 100755 script/parse-examples diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cb17c44..f0fd567 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,33 +2,233 @@ name: CI on: push: - branches: - - master + branches: [master] + paths: + - grammar.js + - src/** + - test/** + - bindings/** + - binding.gyp pull_request: - branches: - - "**" + paths: + - grammar.js + - src/** + - test/** + - bindings/** + - binding.gyp + +concurrency: + group: ${{github.workflow}}-${{github.ref}} + cancel-in-progress: true jobs: test: - runs-on: ${{ matrix.os }} + name: Test parser + runs-on: ${{matrix.os}} strategy: - fail-fast: true + fail-fast: false matrix: - os: [macos-latest, ubuntu-latest] + os: [ubuntu-latest, windows-latest, macos-14] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v2 + - name: Checkout repository + uses: actions/checkout@v4 + - name: Set up tree-sitter + uses: tree-sitter/setup-action/cli@v2 + - name: Run tests + uses: tree-sitter/parser-test-action@v2 with: - node-version: 16 - - run: npm install - - run: npm test - - test_windows: - runs-on: windows-2019 - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v2 + test-rust: true + test-node: true + test-python: true + test-go: true + test-swift: true + - name: Set up examples + run: |- + git clone https://github.com/apple-oss-distributions/objc4 examples/objc4 --single-branch --depth=1 --filter=blob:none + git clone https://github.com/llvm-mirror/clang examples/clang --single-branch --depth=1 --filter=blob:none + git clone https://github.com/HandBrake/HandBrake examples/HandBrake --single-branch --depth=1 --filter=blob:none + - name: Parse examples + uses: tree-sitter/parse-action@v4 with: - node-version: 16 - - run: npm install - - run: npm run-script test-windows + files: | + examples/**/*.m + !examples/HandBrake/macosx/HBController.m + !examples/HandBrake/macosx/HBCore.m + !examples/HandBrake/macosx/HBFilters.m + !examples/HandBrake/macosx/HBImageUtilities.m + !examples/HandBrake/macosx/HBJob.m + !examples/HandBrake/macosx/HBPresetsManager.m + !examples/HandBrake/macosx/HBRedirect.m + !examples/HandBrake/macosx/HBUtilities.m + !examples/clang/test/ARCMT/GC-check.m + !examples/clang/test/ARCMT/nonobjc-to-objc-cast.m + !examples/clang/test/ARCMT/objcmt-arc-cf-annotations.m + !examples/clang/test/ARCMT/objcmt-atomic-property.m + !examples/clang/test/ARCMT/objcmt-migrate-all.m + !examples/clang/test/ARCMT/objcmt-ns-enum-crash.m + !examples/clang/test/ARCMT/objcmt-ns-macros.m + !examples/clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m + !examples/clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m + !examples/clang/test/ARCMT/objcmt-property.m + !examples/clang/test/ARCMT/objcmt-subscripting-literals.m + !examples/clang/test/AST/property-atomic-bool.m + !examples/clang/test/Analysis/Checkers/RunLoopAutoreleaseLeakChecker.m + !examples/clang/test/Analysis/misc-ps.m + !examples/clang/test/Analysis/retain-release-arc.m + !examples/clang/test/Analysis/retain-release.m + !examples/clang/test/Analysis/vector.m + !examples/clang/test/CodeCompletion/objc-protocol-member-access.m + !examples/clang/test/CodeCompletion/pch-and-module.m + !examples/clang/test/CodeGen/sanitize-thread-no-checking-at-run-time.m + !examples/clang/test/CodeGenObjC/arc-blocks.m + !examples/clang/test/CodeGenObjC/arc-precise-lifetime.m + !examples/clang/test/CodeGenObjC/externally-retained.m + !examples/clang/test/CodeGenObjC/objc-container-subscripting.m + !examples/clang/test/CodeGenObjC/objc-fixed-enum.m + !examples/clang/test/CodeGenObjC/objc-gc-aggr-assign.m + !examples/clang/test/FixIt/fixit-autoreleasepool.m + !examples/clang/test/FixIt/fixit-objc-message.m + !examples/clang/test/FixIt/fixit-objc.m + !examples/clang/test/FixIt/fixit-static-object-decl.m + !examples/clang/test/FixIt/typo.m + !examples/clang/test/Frontend/noderef_on_non_pointers.m + !examples/clang/test/Index/Core/external-source-symbol-attr.m + !examples/clang/test/Index/Core/index-source.m + !examples/clang/test/Index/annotate-comments-objc.m + !examples/clang/test/Index/cindex-on-invalid-usrs.m + !examples/clang/test/Index/cindex-on-invalid.m + !examples/clang/test/Index/complete-block-property-assignment.m + !examples/clang/test/Index/complete-in-invalid-method.m + !examples/clang/test/Index/complete-method-decls.m + !examples/clang/test/Index/complete-objc-message-id.m + !examples/clang/test/Index/complete-objc-message.m + !examples/clang/test/Index/complete-parameterized-classes.m + !examples/clang/test/Index/complete-preprocessor.m + !examples/clang/test/Index/complete-protocols.m + !examples/clang/test/Index/complete-super.m + !examples/clang/test/Index/get-cursor.m + !examples/clang/test/Index/index-attrs.m + !examples/clang/test/Index/index-decls.m + !examples/clang/test/Index/index-invalid-code.m + !examples/clang/test/Index/invalid-code-rdar10451854.m + !examples/clang/test/Index/pch-with-errors.m + !examples/clang/test/Index/unmatched-braces.m + !examples/clang/test/Lexer/minimize_source_to_dependency_directives_at_import_extra_tokens.m + !examples/clang/test/Lexer/minimize_source_to_dependency_directives_at_import_missing_semi.m + !examples/clang/test/Modules/objc-at-keyword.m + !examples/clang/test/Modules/redefinition-c-tagtypes.m + !examples/clang/test/Parser/attr-external-source-symbol.m + !examples/clang/test/Parser/c2x-attributes.m + !examples/clang/test/Parser/check-syntax-1.m + !examples/clang/test/Parser/debugger-import-module.m + !examples/clang/test/Parser/method-def-in-class.m + !examples/clang/test/Parser/method-prototype-1.m + !examples/clang/test/Parser/missing-closing-rbrace.m + !examples/clang/test/Parser/missing-end-2.m + !examples/clang/test/Parser/missing-end-3.m + !examples/clang/test/Parser/missing-end-4.m + !examples/clang/test/Parser/missing-end.m + !examples/clang/test/Parser/objc-at-directive-fixit.m + !examples/clang/test/Parser/objc-at-implementation-eof-crash.m + !examples/clang/test/Parser/objc-at-interface-eof-crash.m + !examples/clang/test/Parser/objc-available.m + !examples/clang/test/Parser/objc-boxing.m + !examples/clang/test/Parser/objc-error-qualified-implementation.m + !examples/clang/test/Parser/objc-forcollection-neg-2.m + !examples/clang/test/Parser/objc-foreach-syntax.m + !examples/clang/test/Parser/objc-implementation-attrs.m + !examples/clang/test/Parser/objc-init.m + !examples/clang/test/Parser/objc-interfaces.m + !examples/clang/test/Parser/objc-messaging-1.m + !examples/clang/test/Parser/objc-messaging-neg-1.m + !examples/clang/test/Parser/objc-missing-impl.m + !examples/clang/test/Parser/objc-property-syntax.m + !examples/clang/test/Parser/objc-quirks.m + !examples/clang/test/Parser/objc-static-assert.m + !examples/clang/test/Parser/objc-synthesized-recover.m + !examples/clang/test/Parser/objc-try-catch-1.m + !examples/clang/test/Parser/objcbridge-related-attribute.m + !examples/clang/test/Parser/placeholder-recovery.m + !examples/clang/test/Parser/recovery.m + !examples/clang/test/Sema/attr-objc-bridge-related.m + !examples/clang/test/SemaObjC/arc-bridged-cast.m + !examples/clang/test/SemaObjC/arc-cf.m + !examples/clang/test/SemaObjC/arc-non-pod-memaccess.m + !examples/clang/test/SemaObjC/attr-deprecated-replacement-fixit.m + !examples/clang/test/SemaObjC/attr-designated-init.m + !examples/clang/test/SemaObjC/attr-objc-gc.m + !examples/clang/test/SemaObjC/class-unavail-warning.m + !examples/clang/test/SemaObjC/crash-label.m + !examples/clang/test/SemaObjC/crash-on-objc-bool-literal.m + !examples/clang/test/SemaObjC/crash-on-type-args-protocols.m + !examples/clang/test/SemaObjC/delay-parsing-cfunctions.m + !examples/clang/test/SemaObjC/diagnose_if.m + !examples/clang/test/SemaObjC/enum-fixed-type.m + !examples/clang/test/SemaObjC/externally-retained.m + !examples/clang/test/SemaObjC/foreach.m + !examples/clang/test/SemaObjC/incomplete-implementation.m + !examples/clang/test/SemaObjC/interface-1.m + !examples/clang/test/SemaObjC/invalid-code.m + !examples/clang/test/SemaObjC/method-bad-param.m + !examples/clang/test/SemaObjC/method-def-1.m + !examples/clang/test/SemaObjC/method-no-context.m + !examples/clang/test/SemaObjC/method-sentinel-attr.m + !examples/clang/test/SemaObjC/mismatched-undefined-method.m + !examples/clang/test/SemaObjC/missing-atend-metadata.m + !examples/clang/test/SemaObjC/nonnull.m + !examples/clang/test/SemaObjC/objc-asm-attribute-neg-test.m + !examples/clang/test/SemaObjC/objc-boxed-expressions-nsvalue.m + !examples/clang/test/SemaObjC/objc-cf-audited-warning.m + !examples/clang/test/SemaObjC/parameterized_classes.m + !examples/clang/test/SemaObjC/property-9.m + !examples/clang/test/SemaObjC/property.m + !examples/clang/test/SemaObjC/protocol-archane.m + !examples/clang/test/SemaObjC/protocols.m + !examples/clang/test/SemaObjC/self-assign.m + !examples/clang/test/SemaObjC/severe-syntax-error.m + !examples/clang/test/SemaObjC/sizeof-interface.m + !examples/clang/test/SemaObjC/string.m + !examples/clang/test/SemaObjC/strong-in-c-struct.m + !examples/clang/test/SemaObjC/transfer-boxed-string-nullability.m + !examples/clang/test/SemaObjC/unguarded-availability-new.m + !examples/clang/test/SemaObjC/unguarded-availability.m + !examples/clang/test/SemaObjC/x86-method-vector-values.m + !examples/objc4/test/02-concurrentcat.m + !examples/objc4/test/04-load-image-notification.m + !examples/objc4/test/05-load-image-notification2.m + !examples/objc4/test/MRCBase.m + !examples/objc4/test/accessors.m + !examples/objc4/test/arr-cast.m + !examples/objc4/test/badCache.m + !examples/objc4/test/badSuperclass.m + !examples/objc4/test/blocksAsImps.m + !examples/objc4/test/category.m + !examples/objc4/test/customrr-nsobject.m + !examples/objc4/test/evil-class-def.m + !examples/objc4/test/exc.m + !examples/objc4/test/fakeRealizedClass.m + !examples/objc4/test/fakeRealizedClass2.m + !examples/objc4/test/foreach.m + !examples/objc4/test/forward.m + !examples/objc4/test/initialize.m + !examples/objc4/test/ivarSlide.m + !examples/objc4/test/literals.m + !examples/objc4/test/load-map-images.m + !examples/objc4/test/load-parallel0.m + !examples/objc4/test/msgSend-performance.m + !examples/objc4/test/msgSend.m + !examples/objc4/test/nsobject.m + !examples/objc4/test/protocolSmall.m + !examples/objc4/test/restartableRangesSynchronizeStress.m + !examples/objc4/test/retain-release-helpers.m + !examples/objc4/test/rr-autorelease-fast.m + !examples/objc4/test/rr-autorelease-fastarc.m + !examples/objc4/test/subscripting.m + !examples/objc4/test/swift-class-def.m + !examples/objc4/test/swiftMetadataInitializerRealloc-dylib1.m + !examples/objc4/test/swiftMetadataInitializerRealloc.m + !examples/objc4/test/swiftStubClassList.m + !examples/objc4/test/taggedNSPointers.m + !examples/objc4/test/taggedPointers.m + !examples/objc4/test/unwind.m + !examples/objc4/test/weakcopy.m diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d94f7f3..96f1a4d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -2,18 +2,25 @@ name: Lint on: push: - branches: - - master + branches: [master] + paths: + - grammar.js pull_request: - branches: - - "**" + paths: + - grammar.js jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Checkout repository + uses: actions/checkout@v4 + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + cache: npm + node-version: ${{vars.NODE_VERSION}} - name: Install modules - run: npm install + run: npm ci --legacy-peer-deps - name: Run ESLint run: npm run lint diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..35459aa --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,35 @@ +name: Publish packages + +on: + push: + tags: ["*"] + +permissions: + contents: write + id-token: write + attestations: write + +jobs: + github: + uses: tree-sitter/workflows/.github/workflows/release.yml@main + with: + generate: true + attestations: true + npm: + uses: tree-sitter/workflows/.github/workflows/package-npm.yml@main + secrets: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + with: + generate: true + crates: + uses: tree-sitter/workflows/.github/workflows/package-crates.yml@main + secrets: + CARGO_REGISTRY_TOKEN: ${{secrets.CARGO_REGISTRY_TOKEN}} + with: + generate: true + pypi: + uses: tree-sitter/workflows/.github/workflows/package-pypi.yml@main + secrets: + PYPI_API_TOKEN: ${{secrets.PYPI_API_TOKEN}} + with: + generate: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 7032c57..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,82 +0,0 @@ -name: Release - -on: - workflow_run: - workflows: ["CI"] - types: - - completed - -permissions: - contents: write - pull-requests: write - -jobs: - release: - runs-on: ubuntu-latest - if: ${{ github.event.workflow_run.conclusion == 'success' && github.ref == 'refs/heads/master' }} - steps: - - uses: google-github-actions/release-please-action@v3 - id: release - with: - release-type: node - package-name: tree-sitter-objc - - - uses: actions/checkout@v3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Update Rust version - run: | - git fetch origin release-please--branches--master--components--tree-sitter-objc - git checkout release-please--branches--master--components--tree-sitter-objc - - git config user.name github-actions[bot] - git config user.email github-actions[bot]@users.noreply.github.com - - repo_name="${{ github.repository }}" - repo_name="${repo_name##*/}" - version=$(grep -o '"version": *"[^"]*"' package.json | sed 's/"version": "\(.*\)"/\1/') - - sed -i "s/version = \"[^\"]*\"/version = \"$version\"/g" Cargo.toml - sed -i "s/$repo_name = \"[^\"]*\"/$repo_name = \"$version\"/g" bindings/rust/README.md - - git add Cargo.toml bindings/rust/README.md - git commit --amend --no-edit - git push -f - - - name: Setup Node - if: ${{ steps.release.outputs.release_created }} - uses: actions/setup-node@v3 - with: - node-version: 18 - registry-url: "https://registry.npmjs.org" - - name: Publish to NPM - if: ${{ steps.release.outputs.release_created }} - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - run: npm publish - - - name: Setup Rust - if: ${{ steps.release.outputs.release_created }} - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - name: Publish to Crates.io - if: ${{ steps.release.outputs.release_created }} - uses: katyo/publish-crates@v2 - with: - registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }} - - - name: Tag stable versions - if: ${{ steps.release.outputs.release_created }} - run: | - git checkout master - git config user.name github-actions[bot] - git config user.email github-actions[bot]@users.noreply.github.com - git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/google-github-actions/release-please-action.git" - git tag -d stable || true - git push origin :stable || true - git tag -a stable -m "Last Stable Release" - git push origin stable diff --git a/script/known_failures.txt b/script/known_failures.txt deleted file mode 100644 index 780fd5b..0000000 --- a/script/known_failures.txt +++ /dev/null @@ -1,194 +0,0 @@ -examples/clang/test/ARCMT/GC-check.m -examples/clang/test/ARCMT/nonobjc-to-objc-cast.m -examples/clang/test/ARCMT/objcmt-arc-cf-annotations.m -examples/clang/test/ARCMT/objcmt-atomic-property.m -examples/clang/test/ARCMT/objcmt-migrate-all.m -examples/clang/test/ARCMT/objcmt-ns-enum-crash.m -examples/clang/test/ARCMT/objcmt-ns-macros.m -examples/clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m -examples/clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m -examples/clang/test/ARCMT/objcmt-property.m -examples/clang/test/ARCMT/objcmt-subscripting-literals.m -examples/clang/test/AST/property-atomic-bool.m -examples/clang/test/Analysis/Checkers/RunLoopAutoreleaseLeakChecker.m -examples/clang/test/Analysis/NSString.m -examples/clang/test/Analysis/dispatch-once.m -examples/clang/test/Analysis/misc-ps-64.m -examples/clang/test/Analysis/misc-ps-region-store-i386.m -examples/clang/test/Analysis/misc-ps-region-store-x86_64.m -examples/clang/test/Analysis/misc-ps-region-store.m -examples/clang/test/Analysis/misc-ps.m -examples/clang/test/Analysis/number-object-conversion.m -examples/clang/test/Analysis/retain-release-arc.m -examples/clang/test/Analysis/retain-release-inline.m -examples/clang/test/Analysis/retain-release.m -examples/clang/test/Analysis/vector.m -examples/clang/test/CodeCompletion/objc-protocol-member-access.m -examples/clang/test/CodeCompletion/pch-and-module.m -examples/clang/test/CodeGen/sanitize-thread-no-checking-at-run-time.m -examples/clang/test/CodeGenObjC/arc-blocks.m -examples/clang/test/CodeGenObjC/arc-precise-lifetime.m -examples/clang/test/CodeGenObjC/block-ptr-type-crash.m -examples/clang/test/CodeGenObjC/externally-retained.m -examples/clang/test/CodeGenObjC/objc-container-subscripting.m -examples/clang/test/CodeGenObjC/objc-fixed-enum.m -examples/clang/test/CodeGenObjC/objc-gc-aggr-assign.m -examples/clang/test/FixIt/fixit-autoreleasepool.m -examples/clang/test/FixIt/fixit-objc-message.m -examples/clang/test/FixIt/fixit-objc.m -examples/clang/test/FixIt/fixit-static-object-decl.m -examples/clang/test/FixIt/format.m -examples/clang/test/FixIt/typo.m -examples/clang/test/Frontend/noderef_on_non_pointers.m -examples/clang/test/Index/Core/external-source-symbol-attr.m -examples/clang/test/Index/Core/index-source.m -examples/clang/test/Index/annotate-comments-objc.m -examples/clang/test/Index/cindex-on-invalid-usrs.m -examples/clang/test/Index/cindex-on-invalid.m -examples/clang/test/Index/complete-block-property-assignment.m -examples/clang/test/Index/complete-in-invalid-method.m -examples/clang/test/Index/complete-method-decls.m -examples/clang/test/Index/complete-objc-message-id.m -examples/clang/test/Index/complete-objc-message.m -examples/clang/test/Index/complete-parameterized-classes.m -examples/clang/test/Index/complete-preprocessor.m -examples/clang/test/Index/complete-protocols.m -examples/clang/test/Index/complete-super.m -examples/clang/test/Index/get-cursor.m -examples/clang/test/Index/index-attrs.m -examples/clang/test/Index/index-decls.m -examples/clang/test/Index/index-invalid-code.m -examples/clang/test/Index/invalid-code-rdar10451854.m -examples/clang/test/Index/pch-with-errors.m -examples/clang/test/Index/unmatched-braces.m -examples/clang/test/Lexer/minimize_source_to_dependency_directives_at_import_extra_tokens.m -examples/clang/test/Lexer/minimize_source_to_dependency_directives_at_import_missing_semi.m -examples/clang/test/Modules/objc-at-keyword.m -examples/clang/test/Modules/redefinition-c-tagtypes.m -examples/clang/test/Parser/attr-external-source-symbol.m -examples/clang/test/Parser/c2x-attributes.m -examples/clang/test/Parser/check-syntax-1.m -examples/clang/test/Parser/debugger-import-module.m -examples/clang/test/Parser/method-def-in-class.m -examples/clang/test/Parser/method-prototype-1.m -examples/clang/test/Parser/missing-closing-rbrace.m -examples/clang/test/Parser/missing-end-2.m -examples/clang/test/Parser/missing-end-3.m -examples/clang/test/Parser/missing-end-4.m -examples/clang/test/Parser/missing-end.m -examples/clang/test/Parser/objc-at-directive-fixit.m -examples/clang/test/Parser/objc-at-implementation-eof-crash.m -examples/clang/test/Parser/objc-at-interface-eof-crash.m -examples/clang/test/Parser/objc-available.m -examples/clang/test/Parser/objc-boxing.m -examples/clang/test/Parser/objc-error-qualified-implementation.m -examples/clang/test/Parser/objc-forcollection-neg-2.m -examples/clang/test/Parser/objc-foreach-syntax.m -examples/clang/test/Parser/objc-implementation-attrs.m -examples/clang/test/Parser/objc-init.m -examples/clang/test/Parser/objc-interfaces.m -examples/clang/test/Parser/objc-messaging-1.m -examples/clang/test/Parser/objc-messaging-neg-1.m -examples/clang/test/Parser/objc-missing-impl.m -examples/clang/test/Parser/objc-property-syntax.m -examples/clang/test/Parser/objc-quirks.m -examples/clang/test/Parser/objc-static-assert.m -examples/clang/test/Parser/objc-synthesized-recover.m -examples/clang/test/Parser/objc-try-catch-1.m -examples/clang/test/Parser/objcbridge-related-attribute.m -examples/clang/test/Parser/placeholder-recovery.m -examples/clang/test/Parser/recovery.m -examples/clang/test/Sema/attr-objc-bridge-related.m -examples/clang/test/SemaObjC/arc-bridged-cast.m -examples/clang/test/SemaObjC/arc-cf.m -examples/clang/test/SemaObjC/arc-non-pod-memaccess.m -examples/clang/test/SemaObjC/arc.m -examples/clang/test/SemaObjC/attr-deprecated-replacement-fixit.m -examples/clang/test/SemaObjC/attr-designated-init.m -examples/clang/test/SemaObjC/attr-objc-gc.m -examples/clang/test/SemaObjC/class-unavail-warning.m -examples/clang/test/SemaObjC/crash-label.m -examples/clang/test/SemaObjC/crash-on-objc-bool-literal.m -examples/clang/test/SemaObjC/crash-on-type-args-protocols.m -examples/clang/test/SemaObjC/delay-parsing-cfunctions.m -examples/clang/test/SemaObjC/diagnose_if.m -examples/clang/test/SemaObjC/enum-fixed-type.m -examples/clang/test/SemaObjC/externally-retained.m -examples/clang/test/SemaObjC/foreach.m -examples/clang/test/SemaObjC/incomplete-implementation.m -examples/clang/test/SemaObjC/interface-1.m -examples/clang/test/SemaObjC/invalid-code.m -examples/clang/test/SemaObjC/method-bad-param.m -examples/clang/test/SemaObjC/method-conflict-2.m -examples/clang/test/SemaObjC/method-def-1.m -examples/clang/test/SemaObjC/method-no-context.m -examples/clang/test/SemaObjC/method-sentinel-attr.m -examples/clang/test/SemaObjC/mismatched-undefined-method.m -examples/clang/test/SemaObjC/missing-atend-metadata.m -examples/clang/test/SemaObjC/nonnull.m -examples/clang/test/SemaObjC/objc-asm-attribute-neg-test.m -examples/clang/test/SemaObjC/objc-boxed-expressions-nsvalue.m -examples/clang/test/SemaObjC/objc-cf-audited-warning.m -examples/clang/test/SemaObjC/parameterized_classes.m -examples/clang/test/SemaObjC/property-9.m -examples/clang/test/SemaObjC/property.m -examples/clang/test/SemaObjC/protocol-archane.m -examples/clang/test/SemaObjC/protocols.m -examples/clang/test/SemaObjC/self-assign.m -examples/clang/test/SemaObjC/severe-syntax-error.m -examples/clang/test/SemaObjC/sizeof-interface.m -examples/clang/test/SemaObjC/string.m -examples/clang/test/SemaObjC/strong-in-c-struct.m -examples/clang/test/SemaObjC/transfer-boxed-string-nullability.m -examples/clang/test/SemaObjC/unguarded-availability-new.m -examples/clang/test/SemaObjC/unguarded-availability.m -examples/clang/test/SemaObjC/x86-method-vector-values.m -examples/objc4/test/MRCBase.m -examples/objc4/test/accessors.m -examples/objc4/test/arr-cast.m -examples/objc4/test/badCache.m -examples/objc4/test/badSuperclass.m -examples/objc4/test/blocksAsImps.m -examples/objc4/test/category.m -examples/objc4/test/concurrentcat.m -examples/objc4/test/customrr-nsobject.m -examples/objc4/test/evil-class-def.m -examples/objc4/test/exc.m -examples/objc4/test/fakeRealizedClass.m -examples/objc4/test/fakeRealizedClass2.m -examples/objc4/test/foreach.m -examples/objc4/test/fork.m -examples/objc4/test/forward.m -examples/objc4/test/initialize.m -examples/objc4/test/ivarSlide.m -examples/objc4/test/lazyClassName.m -examples/objc4/test/literals.m -examples/objc4/test/load-image-notification.m -examples/objc4/test/load-map-images.m -examples/objc4/test/load-parallel0.m -examples/objc4/test/msgSend-performance-macos.m -examples/objc4/test/msgSend-performance.m -examples/objc4/test/msgSend.m -examples/objc4/test/nsobject.m -examples/objc4/test/protocolSmall.m -examples/objc4/test/restartableRangesSynchronizeStress.m -examples/objc4/test/retain-release-helpers.m -examples/objc4/test/rr-autorelease-fast.m -examples/objc4/test/rr-autorelease-fastarc.m -examples/objc4/test/subscripting.m -examples/objc4/test/swift-class-def.m -examples/objc4/test/swiftMetadataInitializerRealloc-dylib1.m -examples/objc4/test/swiftMetadataInitializerRealloc.m -examples/objc4/test/swiftStubClassList.m -examples/objc4/test/taggedNSPointers.m -examples/objc4/test/taggedPointers.m -examples/objc4/test/unwind.m -examples/objc4/test/weakcopy.m -examples/HandBrake/macosx/HBCore.m -examples/HandBrake/macosx/HBFilters.m -examples/HandBrake/macosx/HBImageUtilities.m -examples/HandBrake/macosx/HBJob.m -examples/HandBrake/macosx/HBPresetsManager.m -examples/HandBrake/macosx/HBRedirect.m -examples/HandBrake/macosx/HBUtilities.m -examples/clang/test/SemaObjC/format-size-spec-nsinteger.m diff --git a/script/parse-examples b/script/parse-examples deleted file mode 100755 index 705aa76..0000000 --- a/script/parse-examples +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash - -set -eu - -cd "$(dirname "$0")/.." - -function clone_repo { - owner=$1 - name=$2 - sha=$3 - - path=examples/$name - if [ ! -d "$path" ]; then - echo "Cloning $owner/$name" - git clone "https://github.com/$owner/$name" "$path" - fi - - pushd "$path" >/dev/null - actual_sha=$(git rev-parse HEAD) - if [ "$actual_sha" != "$sha" ]; then - echo "Updating $owner/$name to $sha" - git fetch - git reset --hard "$sha" - fi - popd >/dev/null -} - -clone_repo apple-oss-distributions objc4 689525d556eb3dee1ffb700423bccf5ecc501dbf -clone_repo llvm-mirror clang aa231e4be75ac4759c236b755c57876f76e3cf05 -clone_repo HandBrake HandBrake aa928b718263b7979c50f0c7cd4f87a88a5b4253 - -known_failures="$(cat script/known_failures.txt)" - -# shellcheck disable=2046 -tree-sitter parse -q \ - "examples/**/*.m" \ - $(for file in $known_failures; do echo "!${file}"; done) - -example_count=$(find examples -name "*.m" | wc -l) -failure_count=$(wc -w <<<"$known_failures") -success_count=$((example_count - failure_count)) -success_percent=$(bc -l <<<"100*${success_count}/${example_count}") - -printf \ - "Successfully parsed %d of %d example files (%.1f%%)\n" \ - "$success_count" "$example_count" "$success_percent"