Post by aliazzz on #10 On using the RC versions of CfUnit
CfUnit
questions
(Post)
Description has changed: Diff: --- old +++ new @@ -1,10 +1,16 @@ # On using the RC versions of CfUnit -For the the slightly more adventurous people a "Release Candidate" can be installed in tandem with V1.0.0.0 official public release of CfUnit. Release Candidate are considered to be an advanced work in progress in lieu of the next expected public release. A Release Candidate code is not yet entirely field tested and may contain parts of code which might need to be addressed. If any problems are addressed, the Release Candidate will receive an upgrade to a higher version (without prior notice). This cycle will repeat itself until the software is considered 'mature' and receives a public release. So with your help we can field test the software and thus limit the number of bug fixes needed after an official public release. +A "Release Candidate" can be installed in tandem with V1.0.0.0 official public release of CfUnit and swapped in/out as you see fit. -If you decide to use an RC and you stumble upon something unexpected, please **share** your findings so we may improve the software further. Please do provide the following information so that we can replicate and address the problem accordingly; +"Release Candidates" are considered to be advanced work in progress in lieu of the next expected public release. +A "Release Candidate" has had limited field testing and may contain parts of code which might need to be addressed further. +If any problems are addressed, the "Release Candidate" will receive an upgrade to a higher version **without prior notice**. This development cycle repeats itself until the software is considered **mature**" and receives a true public release (package, documentation etc, etc.) -* Please check if the RC you use is latest RC available. Please **upgrade** to the latest RC and check if your issue persists. +So, with your help we can let the software get mature faster and limit the amount of bugsfixes needed after an official public release (so we bring the pain forward). + +We highly encourage you to use an RC and if you stumble upon something unexpected, please **share** your findings so we may improve the software faster. Please do provide the following information so that we can replicate and address the problem accordingly; + +* Please check if the RC you use is latest RC available. Always **upgrade** to the latest RC and check if your issue persists. * If your issue persists after update, describe the problem which caused you the send in your feedback here: https://forge.codesys.com/prj/cfunit/tickets/ @@ -13,10 +19,6 @@ * What steps did you take, which resulted into the actual behaviour. * We can ask you to provide further information if needed. -The latest "Release Candidate" can be downloaded here; -https://forge.codesys.com/prj/cfunit/code/HEAD/tree/trunk/Library/CfUnit.library - - Regards and have fun!
Last updated: 2020-06-16
Post by aliazzz on #2 Which runtimes are supported?
CfUnit
questions
(Post)
Description has changed: Diff: discussion: disabled --> enabled
Last updated: 2019-06-03
Post by aliazzz on #3 Can I add extra stuff into the log?
CfUnit
questions
(Post)
Description has changed: Diff: --- old +++ new @@ -1,6 +1,6 @@ Sure! -Use the function **LogStr( msgprio, '...', '...' );** to add extra information into the log. +Use the function **ADD_DEVICE_LOG( msgprio, '...', '...' );** to add extra information into the log. Priorities INFO (1) : Recommened verbose message @@ -9,5 +9,5 @@ Usage example ~~~ -LogStr( 1, ' Extra log message: %s', xMyBool ); +ADD_DEVICE_LOG( 1, ' Extra log message: %s', xMyBool ); ~~~
Last updated: 2020-05-22
Post by aliazzz on #2 Which runtimes are supported?
CfUnit
questions
(Post)
Description has changed: Diff: --- old +++ new @@ -7,7 +7,7 @@ If you have it running on your yet unlisted and it is not yet listed, please drop us a mail and we will add it to the list; System | Version | Result | Remark ----------- | ---------- | ------ +---------- | ---------- | ---------- | ---------- CODESYS Control Win SL (x64) | 3.5.14.x | verified | - CODESYS Control Win SL (x64) | 3.5.15.x | verified | - CODESYS Control Win SL (x64) | 3.5.16.0 | verified | - @@ -18,8 +18,8 @@ CODESYS Control Linux SL | 3.5.15.x | verified | - CODESYS Control Linux SL | 3.5.16.x | verified | - CODESYS Control for BeagleboneBlack SL | 3.5.10.30 | verified | - ----------- | ---------- | ------ +---------- | ---------- | ---------- | ---------- Schneider SoMachine | ? | verified | - ABB Automation Builder | v2.2.2 | verified | - WAGO e!COCKPIT | ? | verified | Ticket[48] ----------- | ---------- | ------ +---------- | ---------- | ---------- | ----------
Last updated: 2020-07-15
Post by lukasstelzer on #11 IECStringUtils
CfUnit
questions
(Post)
and why you are not using StringUtils library? i mean there is a printf function in there and i guess it has the same functionality. the thing is that IECStringUtils is not even documented well in CODESYS Online Help. i am working on a brandlabeled version of CODESYS (KeStudio from Company KEBA) and in this version the IECStringUtils is not included. would it be a problem for you to change the library?
Last updated: 2020-06-04
Post by aliazzz on #2 Which runtimes are supported?
CfUnit
questions
(Post)
Description has changed: Diff: --- old +++ new @@ -1,4 +1,8 @@ -**All runtimes from 3.5.14.0 or higher** should be supported. In older runtimes support may vary, try at your own luck. This library has been succesfully tested with the following systems; +**All runtimes from 3.5.14.0 or higher** should be supported. + +*Older runtimes support may vary but in theory any runtime starting from 3.5.10.20 should work, but your mileage may vary (try at your own luck). In such a case some library dependancies should be swapped for older ones. * + +This library has been succesfully tested with the following system versions; System | Version | Result ---------- | ---------- | ------
Last updated: 2019-06-28
Post by aliazzz on #7 Running a test over multple PLC cycles
CfUnit
questions
(Post)
status: --> closed
Last updated: 2020-04-27
Post by aliazzz on #2 Which runtimes are supported?
CfUnit
questions
(Post)
Description has changed: Diff: --- old +++ new @@ -1,13 +1,21 @@ -**All runtimes from 3.5.14.0 or higher** should be supported. +**All runtimes from v3.5.14.x or higher are supported without any known issues** -Older runtimes support may vary but in theory any runtime starting from 3.5.10.20 should work, but your mileage may vary (try at your own luck). In such a case some library dependancies should be swapped for older ones. +Older runtime support may vary but in theory any runtime starting from 3.5.10.20 should work ( but your mileage may vary, try at your own luck). In case of such older runtimes, some library dependencies should be swapped for older ones. -This library has been succesfully tested with the following system versions; +CfUnit is verified on following system versions (the list is not exhaustive). +If you have it running on your yet unlisted and it is not yet listed, please drop us a mail and we will add it to the list; System | Version | Result ---------- | ---------- | ------ -CODESYS Control for BeagleboneBlack SL | 3.5.10.30 | no errors, no warnings -CODESYS Control for Raspberry Pi SL | 3.5.14.20 | no errors, no warnings -CODESYS Control Win SL | 3.5.14.20 | no errors, no warnings -CODESYS Control Win SL (x64) | 3.5.14.20 | no errors, no warnings -CODESYS Control Linux SL | 3.5.14.20 | no errors, no warnings +CODESYS Control Win SL (x64) | 3.5.16.0 | verified +CODESYS Control for Raspberry Pi SL | 3.5.16.0| verified +---------- | ---------- | ------ +CODESYS Control Win SL (x64) | 3.5.15.x | verified +CODESYS Control for Raspberry Pi SL | 3.5.15.x | verified +---------- | ---------- | ------ +CODESYS Control for Raspberry Pi SL | 3.5.14.x | verified +CODESYS Control Win SL | 3.5.14.x | verified +CODESYS Control Win SL (x64) | 3.5.14.x | verified +CODESYS Control Linux SL | 3.5.14.x | verified +---------- | ---------- | ------ +CODESYS Control for BeagleboneBlack SL | 3.5.10.30 | verified
Last updated: 2020-06-02
Post by aliazzz on #6 Log file Location
CfUnit
questions
(Post)
status: open --> closed
Last updated: 2020-04-27
Post by aliazzz on #1 Which Codesys compiler version can I use at minimum? 19:33:12 28-6-2019
CfUnit
questions
(Post)
Description has changed: Diff: --- old +++ new @@ -1 +1,2 @@ -Recommended usage in 3.5.14.0 or higher, lower versions may apply but your mileage may vary. +Recommended usage from **3.5.14.0 or higher**. +Lower versions are not recommended at this time. status: --> open
Last updated: 2019-05-24
Post by aliazzz on #4 Jenkins or Drone integration?
CfUnit
questions
(Post)
Description has changed: Diff: --- old +++ new @@ -1,2 +1,2 @@ We aim to support both popular CI/CD platforms. -Jenkins via a JUnit.xml file and Done via a .yml file. +Jenkins/Drone testreport are supported through a xUnit.xml file.
Last updated: 2020-06-02
Ticket #1: Which Codesys compiler version can I use at minimum? 19:33:12 28-6-2019
CfUnit
questions
(Ticket)
Recommended usage from 3.5.14.0 or higher. Which Codesys compiler version can I use at minimum? 19:33:12 28-6-2019 CfUnit 0 questions Ticket qna Which Codesys compiler version can I use at minimum? 19:33:12 28-6-2019 2019-06-28 19:33:12.887000 open True 0 aliazzz Ticket #1: Which Codesys compiler version can I use at minimum? 19:33:12 28-6-2019 0 False /prj/cfunit/questions/1/ None 2019-05-24 19:13:57.836000 None 1 cfunit Recommended usage from 3.5.14.0 or higher. True False 4
Last updated: 2019-06-28
Ticket #2: Which runtimes are supported?
CfUnit
questions
(Ticket)
CfUnit is verified on the following runtime versions (not exhaustive). If you have successfully ran CfUnit on a runtime system that is not yet listed here, please drop us an email and let us know so others can benefit from it too. Sadly, we cannot guarantee this library to be compatible with all systems, though we strive for high inter-compatibility. All vanilla CODESYS runtimes from v3.5.14.x or higher are supported. OEM runtimes listed (or higher) are supported, but mileage may vary. Older runtime support in theory can work starting from 3.5.10.20 ( again, your mileage may vary, so try at your own luck). In case of older runtimes, some library references/dependencies should be swapped for older ones. System Version Result Remark CODESYS Control Win SL (x64) 3.5.14.x verified CODESYS Control Win SL (x64) 3.5.15.x verified CODESYS Control Win SL (x64) 3.5.16.0 verified CODESYS Control for Raspberry Pi SL 3.5.14.x verified CODESYS Control for Raspberry Pi SL 3.5.15.x verified CODESYS Control for Raspberry Pi SL 3.5.16.0 verified CODESYS Control Linux SL 3.5.14.x verified CODESYS Control Linux SL 3.5.15.x verified CODESYS Control Linux SL 3.5.16.x verified CODESYS Control for BeagleboneBlack SL 3.5.10.30 verified Schneider SoMachine ? verified ABB Automation Builder v2.2.2 verified WAGO e!COCKPIT ? verified [#48] ---------- ---------- ---------- ----------Which runtimes are supported? CfUnit 0 questions Ticket qna Which runtimes are supported? 2020-07-15 22:12:31.243000 open False 0 aliazzz Ticket #2: Which runtimes are supported? 0 False /prj/cfunit/questions/2/ None 2019-06-03 17:27:35.418000 None 2 cfunit CfUnit is verified on the following runtime versions (not exhaustive). If you have successfully ran CfUnit on a runtime system that is not yet listed here, please drop us an email and let us know so others can benefit from it too. Sadly, we cannot guarantee this library to be compatible with all systems, though we strive for high inter-compatibility. All vanilla CODESYS runtimes from v3.5.14.x or higher are supported. OEM runtimes listed (or higher) are supported, but mileage may vary. Older runtime support in theory can work starting from 3.5.10.20 ( again, your mileage may vary, so try at your own luck). In case of older runtimes, some library references/dependencies should be swapped for older ones. System Version Result Remark CODESYS Control Win SL (x64) 3.5.14.x verified CODESYS Control Win SL (x64) 3.5.15.x verified CODESYS Control Win SL (x64) 3.5.16.0 verified CODESYS Control for Raspberry Pi SL 3.5.14.x verified CODESYS Control for Raspberry Pi SL 3.5.15.x verified CODESYS Control for Raspberry Pi SL 3.5.16.0 verified CODESYS Control Linux SL 3.5.14.x verified CODESYS Control Linux SL 3.5.15.x verified CODESYS Control Linux SL 3.5.16.x verified CODESYS Control for BeagleboneBlack SL 3.5.10.30 verified Schneider SoMachine ? verified ABB Automation Builder v2.2.2 verified WAGO e!COCKPIT ? verified [#48] ---------- ---------- ---------- ---------- False False 24
Last updated: 2020-07-15
Ticket #3: Can I add extra stuff into the log?
CfUnit
questions
(Ticket)
Sure! Use the function ADD_DEVICE_LOG( msgprio, '...', '...' ); to add extra information into the log. Priorities INFO (1) : Recommened verbose message WARNING (2) : ERROR (4): ERROR is reserved [FUTURE] to generate a status report for a CI/CD toolchain xUnit (jUnit) xml report. Usage example ADD_DEVICE_LOG( 1, ' Extra log message: %s', xMyBool ); ~~~Can I add extra stuff into the log? CfUnit 0 questions Ticket qna Can I add extra stuff into the log? 2020-05-22 16:39:42.653000 open False 0 aliazzz Ticket #3: Can I add extra stuff into the log? 0 False /prj/cfunit/questions/3/ None 2019-06-29 09:30:09.197000 None 3 cfunit Sure! Use the function **ADD_DEVICE_LOG( msgprio, '...', '...' );** to add extra information into the log. Priorities INFO (1) : Recommened verbose message WARNING (2) : ERROR (4): ERROR is reserved [FUTURE] to generate a status report for a CI/CD toolchain xUnit (jUnit) xml report. Usage example ADD_DEVICE_LOG( 1, ' Extra log message: %s', xMyBool ); ~~~ False False 7
Last updated: 2020-05-22
Ticket #5: FAQ will be redirected 17:15:20 3-1-2020
CfUnit
questions
(Ticket)
CfUnit will combine it's FAQ and API with it's brother TcUnit. Reason behind this decision is simple: Effectivity. Technically CfUnit is about 90% similair to TcUnit as most of the differences are internal framework functionalities, and not the user interactive parts. The same is true for the user-api. This will dissappear from the library and rediect to the original TcUnit API. The new FAQ will cover most basic and advanced topics of general usage. Offcourse some of these questions will relate to TwinCAT usage only, but mostly these questions and anwsers can easily be mapped to CODESYS. Therefore, we recommended to visit https://tcunit.org/. Hoping to see you at the new FAQ at which hopefully you can find anwsers to any questions you might have! The correct url of the new faq will be posted here, and afterwards this FAQ will be frozen. FAQ will be redirected 17:15:20 3-1-2020 CfUnit 0 questions Ticket qna FAQ will be redirected 17:15:20 3-1-2020 2020-01-03 17:15:20.984000 open False 0 aliazzz Ticket #5: FAQ will be redirected 17:15:20 3-1-2020 0 False /prj/cfunit/questions/5/ None 2019-12-31 17:24:28.745000 None 5 FAQ cfunit CfUnit will combine it's FAQ and API with it's brother TcUnit. Reason behind this decision is simple: Effectivity. Technically CfUnit is about 90% similair to TcUnit as most of the differences are internal framework functionalities, and not the user interactive parts. The same is true for the user-api. This will dissappear from the library and rediect to the original TcUnit API. The new FAQ will cover most basic and advanced topics of general usage. Offcourse some of these questions will relate to TwinCAT usage only, but mostly these questions and anwsers can easily be mapped to CODESYS. Therefore, we recommended to visit https://tcunit.org/. Hoping to see you at the new FAQ at which hopefully you can find anwsers to any questions you might have! The correct url of the new faq will be posted here, and afterwards this FAQ will be frozen. True False 3
Last updated: 2020-01-03
Ticket #7: Running a test over multple PLC cycles
CfUnit
questions
(Ticket)
See the provided example in the installation package for more details Or get CfUnitTimedTestExample.project from the trunk Other versions of CfUnit are not supported, please update to v1.0.0.0 or latest RC; CfUnit v1.0.0.0 => Works, verified CfUnit v1.0.9.94 (RC4) => Works, verified Running a test over multple PLC cycles CfUnit 0 questions Ticket qna Running a test over multple PLC cycles 2020-06-02 19:03:16.853000 open False 0 aliazzz Ticket #7: Running a test over multple PLC cycles 0 False /prj/cfunit/questions/7/ None 2020-04-27 15:44:45.341000 None 7 cfunit See the provided example in the installation package for more details Or get CfUnitTimedTestExample.project from the trunk Other versions of CfUnit are not supported, please update to v1.0.0.0 or latest RC; CfUnit v1.0.0.0 => Works, verified CfUnit v1.0.9.94 (RC4) => Works, verified False False 4
Last updated: 2020-06-02
Ticket #8: How can I disable or ignore a test?
CfUnit
questions
(Ticket)
Just add 'DISABLED_' in front of the test name, like so: TEST('DISABLED_ThisTestWillBeIgnored'); AssertEquals(Expected := a, Actual := b, Message := 'A does not equal B'); TEST_FINISHED(); How can I disable or ignore a test? CfUnit 0 questions Ticket qna How can I disable or ignore a test? 2020-05-01 12:11:29.161000 open False 0 aliazzz Ticket #8: How can I disable or ignore a test? 0 False /prj/cfunit/questions/8/ None 2020-04-27 15:49:27.804000 None 8 cfunit Just add 'DISABLED_' in front of the test name, like so: TEST('DISABLED_ThisTestWillBeIgnored'); AssertEquals(Expected := a, Actual := b, Message := 'A does not equal B'); TEST_FINISHED(); False False 4
Last updated: 2020-05-01
Ticket #9: Is there a way to test direct adressed (%I* or %Q*) variables?
CfUnit
questions
(Ticket)
Yes. In a number of scenarios, CODESYS will not allow you write directly to certain variable types due to access restrictions e.g. : A variable declared in a FB’s VAR (a local var not in global scope) The variable being set as a direct I/O adress (i.e. AT %I* or AT %Q*) Writing to these kinds of variables wouldn't make sense and should be prevented under normal circumstances, so having special privileges during testing is a must. To support these cases, CfUnit provides helper functions like WRITE_PROTECTED_BOOL, WRITE_PROTECTED_INT (etc, etc.) for setting these type of variables. As an example of how to apply them, let’s assume you have a test: METHOD PRIVATE TestCommsOkChannelsLow VAR TestFB : FB_SomeTestFB; END_VAR Where the FB_SomeTestFB holds a variable: iChannelInput AT %I* : ARRAY[1..8] OF BOOL; Now you might want to write a value to the first channel of the iChannelInput like: CfUnit.WRITE_PROTECTED_BOOL(Ptr := ADR(TestFB.iChannelInput[1]), Value := FALSE); Whereas afterwards you can make an assertion as usual: AssertFalse(Condition := TestFB.ChannelInput[1], Message := 'Channel is not false'); Is there a way to test direct adressed (%I or %Q) variables? CfUnit 0 questions Ticket qna Is there a way to test direct adressed (%I or %Q) variables? 2020-05-01 10:18:50.435000 open False 0 aliazzz Ticket #9: Is there a way to test direct adressed (%I or %Q) variables? 0 False /prj/cfunit/questions/9/ None 2020-04-27 16:06:39.297000 None 9 cfunit Yes. In a number of scenarios, CODESYS will not allow you write directly to certain variable types due to access restrictions e.g. : A variable declared in a FB’s VAR (a local var not in global scope) The variable being set as a direct I/O adress (i.e. AT %I* or AT %Q*) Writing to these kinds of variables wouldn't make sense and should be prevented under normal circumstances, so having special privileges during testing is a must. To support these cases, CfUnit provides helper functions like WRITE_PROTECTED_BOOL, WRITE_PROTECTED_INT (etc, etc.) for setting these type of variables. As an example of how to apply them, let’s assume you have a test: METHOD PRIVATE TestCommsOkChannelsLow VAR TestFB : FB_SomeTestFB; END_VAR Where the FB_SomeTestFB holds a variable: iChannelInput AT %I* : ARRAY[1..8] OF BOOL; Now you might want to write a value to the first channel of the iChannelInput like: CfUnit.WRITE_PROTECTED_BOOL(Ptr := ADR(TestFB.iChannelInput[1]), Value := FALSE); Whereas afterwards you can make an assertion as usual: AssertFalse(Condition := TestFB.ChannelInput[1], Message := 'Channel is not false'); False False 3
Last updated: 2020-05-01
Ticket #11: IECStringUtils
CfUnit
questions
(Ticket)
Is this lib available for CODESYS somewhere? or is this only available for TwinCAT system? I am using Codesys 3.5.15. there i only have the library "StringUtils" with the function Printf insideIECStringUtils CfUnit 0 questions Ticket qna IECStringUtils 2020-06-08 16:57:43.781000 closed False 0 lukasstelzer Ticket #11: IECStringUtils 0 False /prj/cfunit/questions/11/ None 2020-06-04 08:07:01.560000 None 11 cfunit Is this lib available for CODESYS somewhere? or is this only available for TwinCAT system? I am using Codesys 3.5.15. there i only have the library "StringUtils" with the function Printf inside False False 2
Last updated: 2020-06-08
Ticket #12: Contributing to CfUnit
CfUnit
questions
(Ticket)
Contributing to CfUnit We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's: Reporting a bug Discussing the current state of the code Submitting a fix Proposing new features Becoming a maintainer We Develop with CODESYS Forge We use CODESYS Forge to host code, to track issues & feature requests. Since CODESYS IDE is currently only using SVN, Pull Requests (PR's) are a bit of an issue currently. Every code should be checked before submission: Does your code have a test in the verifier? No => write a test for the verifier Yes => provide proof that your code and test works After peer review and a working unittest in the verifier is provided, the code is eligible for merge in the trunk. Any contributions you make will be under the MIT Software License In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern. Report bugs using Codeys Forge [Tickets] We use Tickets to track public bugs. Report a bug by opening a new ticket; it's that easy! Write bug reports with detail, background, and sample code Great Bug Reports tend to have: A quick summary and/or background Steps to reproduce Be specific! Give sample code if you can. What you expected would happen What actually happens Notes (possibly including why you think this might be happening, or stuff you tried that didn't work) Use a Consistent Coding Style Never open/edit the trunk code! Instead, create a (local) branch under your own name and make your code adjustmensts there. Make sure to keep the library settings and project information as the trunk project, except your version number. Make sure that your CODESYS IDE uses spaces instead of tabs. The default behaviour of the CODESYS IDE is to use tabs so it needs to be changed. See Tools - Options - Text Editor - Editing - Untick "Keep tabs" and set tabwidth to 4 License By contributing, you agree that your contributions will be licensed under its MIT License. References This document was adapted from briandk's excellent contribution guidelines template.Contributing to CfUnit CfUnit 0 questions Ticket qna Contributing to CfUnit 2020-06-15 22:13:40.674000 open False 0 aliazzz Ticket #12: Contributing to CfUnit 0 False /prj/cfunit/questions/12/ aliazzz 2020-06-15 22:11:03.561000 None 12 cfunit Contributing to CfUnit We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's: Reporting a bug Discussing the current state of the code Submitting a fix Proposing new features Becoming a maintainer We Develop with CODESYS Forge We use CODESYS Forge to host code, to track issues & feature requests. Since CODESYS IDE is currently only using SVN, Pull Requests (PR's) are a bit of an issue currently. Every code should be checked before submission: Does your code have a test in the verifier? No => write a test for the verifier Yes => provide proof that your code and test works After peer review and a working unittest in the verifier is provided, the code is eligible for merge in the trunk. Any contributions you make will be under the MIT Software License In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern. Report bugs using Codeys Forge [Tickets] We use Tickets to track public bugs. Report a bug by opening a new ticket; it's that easy! Write bug reports with detail, background, and sample code Great Bug Reports tend to have: A quick summary and/or background Steps to reproduce Be specific! Give sample code if you can. What you expected would happen What actually happens Notes (possibly including why you think this might be happening, or stuff you tried that didn't work) Use a Consistent Coding Style Never open/edit the trunk code! Instead, create a (local) branch under your own name and make your code adjustmensts there. Make sure to keep the library settings and project information as the trunk project, except your version number. Make sure that your CODESYS IDE uses spaces instead of tabs. The default behaviour of the CODESYS IDE is to use tabs so it needs to be changed. See Tools - Options - Text Editor - Editing - Untick "Keep tabs" and set tabwidth to 4 License By contributing, you agree that your contributions will be licensed under its MIT License. References This document was adapted from briandk's excellent contribution guidelines template. False False 3
Last updated: 2020-06-15
(no subject)
CfUnit
questions
(Thread)
Last updated: 2019-06-06
(no subject)
CfUnit
landing
(Thread)
Last updated: 2020-07-15
(no subject)
CfUnit
landing
(Thread)
Last updated: 2020-07-15
(no subject)
CfUnit
questions
(Thread)
Last updated: 2020-06-08
(no subject)
CfUnit
questions
(Thread)
Last updated: 2019-12-31