Bug 192420 - New port: ports/cmockery2 - unittest framework
Summary: New port: ports/cmockery2 - unittest framework
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
: 192421 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-08-06 08:18 UTC by Harshavardhana
Modified: 2014-08-23 15:14 UTC (History)
2 users (show)

See Also:


Attachments
cmockery2 port (2.77 KB, patch)
2014-08-06 08:39 UTC, Harshavardhana
no flags Details | Diff
cmockery2 port v2 (2.98 KB, patch)
2014-08-06 10:24 UTC, Harshavardhana
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Harshavardhana 2014-08-06 08:18:52 UTC
This is a port of Cmockery2, Cmockery2 is revival of Google's unit
test framework.

Cmockery tests are compiled into a stand-alone executable and linked 
with the cmockery library, the standard C library and module being 
tested. Any symbols external to the module being tested should be 
mocked - replaced with functions that return values determined by 
the test - within the test application. Even though significant 
differences may exist between the target execution environment of a 
code module and the environment used to test the code the unit testing 
is still valid since its goal is to test the logic of a code modules 
at a functional level and not necessarily all of its interactions with
 the target execution environment.

Other features

- Lightweight C Unit test with mocking support
- JUnit XML report output which can be used with Jenkins
- Provides design-by-contract support

This project is a successor of http://code.google.com/p/cmockery-staging/ 
which is a successor of Google's http://code.google.com/p/cmockery/.

Further documentation available at https://github.com/lpabon/cmockery2
Comment 1 John Marino freebsd_committer freebsd_triage 2014-08-06 08:31:20 UTC
*** Bug 192421 has been marked as a duplicate of this bug. ***
Comment 2 John Marino freebsd_committer freebsd_triage 2014-08-06 08:37:24 UTC
Except there is no port file (shar) attached.  What gives?
Comment 3 Harshavardhana 2014-08-06 08:39:23 UTC
Created attachment 145412 [details]
cmockery2 port

Looks like my report didn't capture the shar file - attaching here, sorry for lack of brevity :-(
Comment 4 John Marino freebsd_committer freebsd_triage 2014-08-06 08:48:49 UTC
Okay, better but experience has shown I need to request one more thing before I can declare this "patch-ready": test logs

In order of preference, examples of what I'm looking for are:

1) "poudriere testport" or "poudriere bulk -t" logs
2) Redports or tinderbox logs
3) "make check-plist" followed by "make stage-qa" output


Can you provide something like that?
Comment 5 Harshavardhana 2014-08-06 10:24:16 UTC
Created attachment 145417 [details]
cmockery2 port v2

Here is the output of the tests requested, thank you for taking a look. 

# pwd
/usr/local/poudriere/ports/default/sysutils/cmockery2

# make check-plist
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for directories owned by MTREEs
===> Checking for directories handled by dependencies
===> Checking for items in pkg-plist which are not in STAGEDIR
===> No pkg-plist issues found (check-plist)

# make stage-qa
====> Running Q/A tests (stage-qa)

# poudriere testport -o sysutils/cmockery2 -j cmockery2
....
....
....
....
=======================<phase: install-mtree  >============================
===========================================================================
=======================<phase: install        >============================
===>  Installing for cmockery2-1.3.8
===>  Checking if sysutils/cmockery2 already installed
===>   Registering installation for cmockery2-1.3.8
===========================================================================
====>> Checking shared library dependencies
        libc.so.7 => /lib/libc.so.7 (0x80081d000)
=======================<phase: deinstall      >============================
===>  Deinstalling for sysutils/cmockery2
===>   Deinstalling 
Updating database digests format... done
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        cmockery2-1.3.8

The operation will free 163 KB
[cmockery2-default] [1/1] Deleting cmockery2-1.3.8... done
===========================================================================
====>> Checking for extra files and directories
====>> Installing from package
[cmockery2-default] Installing cmockery2-1.3.8... done
====>> Cleaning up
===>  Cleaning for cmockery2-1.3.8
====>> Deinstalling package
Updating database digests format... done
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        cmockery2-1.3.8

The operation will free 163 KB
[cmockery2-default] [1/1] Deleting cmockery2-1.3.8... done
====>> Cleaning up
====>> Umounting file systems
[root@freebsd0 ~]# 

# poudriere bulk -C -t -j cmockery2 sysutils/cmockery2 
====>> Creating the reference jail... done
====>> Mounting system devices for cmockery2-default
====>> Mounting ports/packages/distfiles
====>> Mounting packages from: /usr/local/poudriere/data/packages/cmockery2-default
====>> Logs: /usr/local/poudriere/data/logs/bulk/cmockery2-default/2014-08-06_10h20m21s
/etc/resolv.conf -> /usr/local/poudriere/data/build/cmockery2-default/ref/etc/resolv.conf
====>> Starting jail cmockery2-default
====>> Loading MOVED
====>> Calculating ports order and dependencies
====>> Deleting existing package: cmockery2-1.3.8.txz
====>> Sanity checking the repository
====>> Deleting stale symlinks
====>> Deleting empty directories
====>> Cleaning the build queue
====>> Building 1 packages using 1 builders
====>> Starting/Cloning builders
====>> Hit CTRL+t at any time to see build progress and stats
====>> [01] Starting build of sysutils/cmockery2

load: 1.08  cmd: make 77213 [running] 0.00r 0.00u 0.00s 0% 792k
sleep: about 0 second(s) left out of the original 2
[cmockery2-default] [parallel_build:] [00/01] Built: 0  Failed: 0   Ignored: 0   Skipped: 0   
        [01]: sysutils/cmockery2               stage-qa        (00:00:20)
====>> Logs: /usr/local/poudriere/data/logs/bulk/cmockery2-default/2014-08-06_10h20m21s
====>> [01] Finished build of sysutils/cmockery2: Success
====>> Stopping 1 builders
====>> Creating pkgng repository
Creating repository in /packages: 100%
Packing files for repository: 100%
====>> Cleaning up
====>> Umounting file systems
====>> Built ports: sysutils/cmockery2

====>> [cmockery2-default] 1 packages built, 0 failures, 0 ignored, 0 skipped
====>> Logs: /usr/local/poudriere/data/logs/bulk/cmockery2-default/2014-08-06_10h20m21s

Do you need the poudriere full logs?
Comment 6 John Marino freebsd_committer freebsd_triage 2014-08-06 10:35:52 UTC
I'll move it to patch-ready based on this.

If you run "poudriere testport" or "poudriere bulk -t", I don't need the logs, but it would suffice to say "it passes <run type>".  Basically that checks if the dependencies are correct or if the port touches part of the filesystem it shouldn't, which can't be tested without poudriere.
Comment 7 commit-hook freebsd_committer freebsd_triage 2014-08-23 15:14:00 UTC
A commit references this bug:

Author: adamw
Date: Sat Aug 23 15:13:24 UTC 2014
New revision: 365741
URL: http://svnweb.freebsd.org/changeset/ports/365741

Log:
  Add sysutils/cmockery2.

  This is a port of Cmockery2, Cmockery2 is revival of Google's unit
  test framework.

  WWW: https://github.com/lpabon/cmockery2

  PR:		192420
  Submitted by:	harsha@harshavardhana.net

Changes:
  head/sysutils/Makefile
  head/sysutils/cmockery2/
  head/sysutils/cmockery2/Makefile
  head/sysutils/cmockery2/distinfo
  head/sysutils/cmockery2/pkg-descr
  head/sysutils/cmockery2/pkg-message
  head/sysutils/cmockery2/pkg-plist
Comment 8 Adam Weinberger freebsd_committer freebsd_triage 2014-08-23 15:14:30 UTC
Committed with modifications. It was installing stuff into strange locations, and there is a better way to run the autotools stuff.