|
Some checks are pending
API / build (push) Waiting to run
Server CI / Compute Go Version (push) Waiting to run
Server CI / Check mocks (push) Blocked by required conditions
Server CI / Check go mod tidy (push) Blocked by required conditions
Server CI / check-style (push) Blocked by required conditions
Server CI / Check serialization methods for hot structs (push) Blocked by required conditions
Server CI / Vet API (push) Blocked by required conditions
Server CI / Check migration files (push) Blocked by required conditions
Server CI / Generate email templates (push) Blocked by required conditions
Server CI / Check store layers (push) Blocked by required conditions
Server CI / Check mmctl docs (push) Blocked by required conditions
Server CI / Postgres with binary parameters (push) Blocked by required conditions
Server CI / Postgres (shard 0) (push) Blocked by required conditions
Server CI / Postgres (shard 1) (push) Blocked by required conditions
Server CI / Postgres (shard 2) (push) Blocked by required conditions
Server CI / Postgres (shard 3) (push) Blocked by required conditions
Server CI / Merge Postgres Test Results (push) Blocked by required conditions
Server CI / Postgres (FIPS) (push) Blocked by required conditions
Server CI / Generate Test Coverage (push) Blocked by required conditions
Server CI / Run mmctl tests (push) Blocked by required conditions
Server CI / Run mmctl tests (FIPS) (push) Blocked by required conditions
Server CI / Build mattermost server app (push) Blocked by required conditions
Web App CI / check-lint (push) Waiting to run
Web App CI / check-i18n (push) Blocked by required conditions
Web App CI / check-external-links (push) Blocked by required conditions
Web App CI / check-types (push) Blocked by required conditions
Web App CI / test (platform) (push) Blocked by required conditions
Web App CI / test (mattermost-redux) (push) Blocked by required conditions
Web App CI / test (channels shard 1/4) (push) Blocked by required conditions
Web App CI / test (channels shard 2/4) (push) Blocked by required conditions
Web App CI / test (channels shard 3/4) (push) Blocked by required conditions
Web App CI / test (channels shard 4/4) (push) Blocked by required conditions
Web App CI / upload-coverage (push) Blocked by required conditions
Web App CI / build (push) Blocked by required conditions
* MM-68076 Chunk bulk INSERTs to respect PostgreSQL 65,535 parameter limit (#35761) PostgreSQL's wire protocol uses a 16-bit integer for parameter count, causing bulk imports to fail when multi-row INSERTs exceed 65,535 parameters. Add a generic chunkSlice helper that splits rows into sub-batches capped at 50,000 parameters, and apply it to saveMultipleMembers (channel), SaveMultipleMembers (team), and SaveMultipleMemberships (thread). Normal operations (< 3,333 rows) remain a single INSERT with negligible overhead. Wrap all chunked INSERT loops in transactions so multi-chunk batches are atomic — previously channel and team member inserts could leave partial data if a later chunk failed. Add threadMembershipSliceColumns helper so thread membership chunk size is derived dynamically. Includes integration tests for multi-chunk insertion and rollback verification for channel members, team members, posts, and groups. |
||
|---|---|---|
| .. | ||
| exif_samples | ||
| 1x10000.png | ||
| 1x10000_expected_preview.png | ||
| 1x10000_expected_thumb.png | ||
| 10000x1.png | ||
| 10000x1_expected_preview.png | ||
| 10000x1_expected_thumb.png | ||
| bulk_insert_chunk_test.jsonl | ||
| channel-role-has-permission.csv | ||
| crop_test_input.png | ||
| crop_test_output_45x45.png | ||
| crop_test_output_45x100.png | ||
| crop_test_output_100x45.png | ||
| crop_test_output_100x100.png | ||
| custom-schema-cpa.ldif | ||
| custom-schema-objectID.ldif | ||
| development-private-key.asc | ||
| development-public-key.asc | ||
| development-public-key.gpg | ||
| export_test.zip | ||
| export_test_with_nested_jsonl.zip | ||
| Fake_Team_Import.rar | ||
| Fake_Team_Import.tar.gz | ||
| Fake_Team_Import.zip | ||
| fill_test_8bit_palette.png | ||
| fill_test_8bit_palette_out.png | ||
| fill_test_8bit_rgb.png | ||
| fill_test_8bit_rgb_out.png | ||
| fill_test_8bit_rgba.png | ||
| fill_test_8bit_rgba_out.png | ||
| fill_test_16bit_rgb.png | ||
| fill_test_16bit_rgb_out.png | ||
| fill_test_16bit_rgba.png | ||
| fill_test_16bit_rgba_out.png | ||
| fill_test_input.png | ||
| fill_test_opaque.png | ||
| fill_test_output_45x45.png | ||
| fill_test_output_45x100.png | ||
| fill_test_output_100x45.png | ||
| fill_test_output_100x100.png | ||
| fit_test_input.png | ||
| fit_test_output_45x45.png | ||
| fit_test_output_45x100.png | ||
| fit_test_output_100x45.png | ||
| fit_test_output_100x100.png | ||
| group-role-has-permission.csv | ||
| import_test.zip | ||
| large_image_file.jpg | ||
| large_lzw_frame.gif | ||
| orientation_test.jpeg | ||
| orientation_test_1.jpeg | ||
| orientation_test_1_expected_preview.jpeg | ||
| orientation_test_1_expected_thumb.jpeg | ||
| orientation_test_2.jpeg | ||
| orientation_test_2_expected_preview.jpeg | ||
| orientation_test_2_expected_thumb.jpeg | ||
| orientation_test_3.jpeg | ||
| orientation_test_3_expected_preview.jpeg | ||
| orientation_test_3_expected_thumb.jpeg | ||
| orientation_test_4.jpeg | ||
| orientation_test_4_expected_preview.jpeg | ||
| orientation_test_4_expected_thumb.jpeg | ||
| orientation_test_5.jpeg | ||
| orientation_test_5_expected_preview.jpeg | ||
| orientation_test_5_expected_thumb.jpeg | ||
| orientation_test_6.jpeg | ||
| orientation_test_6_expected_preview.jpeg | ||
| orientation_test_6_expected_thumb.jpeg | ||
| orientation_test_7.jpeg | ||
| orientation_test_7_expected_preview.jpeg | ||
| orientation_test_7_expected_thumb.jpeg | ||
| orientation_test_8.jpeg | ||
| orientation_test_8_expected_preview.jpeg | ||
| orientation_test_8_expected_thumb.jpeg | ||
| orientation_test_9.jpeg | ||
| orientation_test_9_expected_preview.jpeg | ||
| orientation_test_9_expected_thumb.jpeg | ||
| qa-data-graph.png | ||
| qa-data.ldif | ||
| README.md | ||
| sample-doc.doc | ||
| sample-doc.docx | ||
| sample-doc.odp | ||
| sample-doc.odt | ||
| sample-doc.pdf | ||
| sample-doc.pptx | ||
| sample-doc.rtf | ||
| slack-import-test-channels.json | ||
| slack-import-test-direct-messages.json | ||
| slack-import-test-group-direct-messages.json | ||
| slack-import-test-posts.json | ||
| slack-import-test-private-channels.json | ||
| slack-import-test-users.json | ||
| test-attachments.md | ||
| test-config.json | ||
| test-data-graph.png | ||
| test-data.ldif | ||
| test-emoticons1.md | ||
| test-emoticons2.md | ||
| test-emoticons3.md | ||
| test-emoticons4.md | ||
| test-emoticons5.md | ||
| test-emoticons6.md | ||
| test-hashtags.md | ||
| test-link-preview.md | ||
| test-links.md | ||
| test-markdown-basics.md | ||
| test-markdown-lists.md | ||
| test-mentions.md | ||
| test-public-key.plugin.gpg | ||
| test-search.md | ||
| test-slack-attachments.json | ||
| test-syntax-highlighting.md | ||
| test-tables.md | ||
| test.png | ||
| test.svg | ||
| test.tiff | ||
| test_expected_tiff_preview.jpeg | ||
| test_expected_tiff_thumb.jpeg | ||
| test_img_diff_A.png | ||
| test_img_diff_B.png | ||
| testarchive.zip | ||
| testgif.gif | ||
| testgif_expected_preview.jpg | ||
| testgif_expected_thumbnail.jpg | ||
| testjpg.jpg | ||
| testplugin-v0.0.2.tar.gz | ||
| testplugin-v0.0.2.tar.gz.asc | ||
| testplugin-v0.0.2.tar.gz.sig | ||
| testplugin.tar.gz | ||
| testplugin.tar.gz.asc | ||
| testplugin.tar.gz.sig | ||
| testplugin2.tar.gz | ||
| testplugin2.tar.gz.asc | ||
| testplugin2.tar.gz.sig | ||
| testwebp.webp | ||
| tls_test_cert.pem | ||
| tls_test_key.pem | ||
Testing Text Processing
The text processing tests located in the doc/developer/tests folder are designed for use with the /test url command. This command posts the raw contents of a specified .md file in the doc/developer/test folder into Mattermost.
Turning on /test
Access the System Console from the Main Menu. Under Service Settings make sure that Enable Testing is set to true, then click Save. You may also change this setting from config.json by setting ”EnableTesting”: true. Changing this setting requires a server restart to take effect.
Running the Tests
In the text input box in Mattermost, type: /test url [file-name-in-testing-folder].md. Some examples:
/test url test-emoticons.md
/test url test-links.md
Notes:
- If a test has prerequisites, make sure your Mattermost setup meets the requirements described at the top of the test file.
- Some tests are over 4000 characters in length and will render across multiple posts.
Manual Testing
It is possible to manually test specific sections of any test, instead of using the /test command. Do this by clicking Raw in the header for the file when it’s open in GitHub, then copy and paste any section into Mattermost to post it. Manual testing only supports sections of 4000 characters or less per post.
Test plugins
There are three test plugins: testplugin.tar.gz, testplugin-v0.0.2.tar.gz, and testplugin2.tar.gz. These are use in some integration tests in the api4 package. Any changes to the plugin bundles require updating the corresponding signatures.
First, import the public and private development key:
gpg --import ./development-public-key.gpg
gpg --import ./development-private-key.asc
This has to be done only once.
Then update the signatures:
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin-v0.0.2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin-v0.0.2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin2.tar.gz
Finally, include the updates bundles and signatures in your commit.